jQWidgets jqxValidator validationError事件

关于 jQWidgets 的 jqxValidator 插件,它提供了 validationError 事件,用于在验证表单数据时出现错误时触发,可以为该事件绑定处理程序,实现自定义错误消息和处理逻辑。

具体操作步骤如下:

1. 引入相关资源

在使用 jqxValidator 和 validationError 事件之前,需要先引入相关的资源(样式和脚本):

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jqwidgets-scripts/styles/jqx.base.css">
<script src="https://cdn.jsdelivr.net/npm/jqwidgets-scripts/jqwidgets/jqxcore.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jqwidgets-scripts/jqwidgets/jqxvalidator.js"></script>

2. 准备 HTML 表单

然后,在 HTML 中创建带有验证规则的表单,并给它们设置 ID,如下所示:

<form id="myForm">
    <label for="name">姓名:</label>
    <input type="text" id="name" name="name" required>
    <br>
    <label for="email">邮箱:</label>
    <input type="email" id="email" name="email" required>
    <br>
    <input type="submit" value="提交">
</form>

3. 创建 jqxValidator 实例

接下来,在 JavaScript 中创建 jqxValidator 实例,并设置相关配置项:

$(document).ready(function () {
    $('#myForm').jqxValidator({
        hintType: 'label',
        animationDuration: 0,
        rules: [
            { input: '#name', message: '姓名不能为空!', action: 'keyup, blur', rule: 'required' },
            { input: '#email', message: '请输入正确的邮箱地址!', action: 'keyup, blur', rule: 'email' }
        ],
        onError: function () {
            // 表单验证出错时触发
            console.log('表单验证出错!');
        },
        onSuccess: function () {
            // 表单验证成功时触发
            console.log('表单验证成功!');
        }
    });
});

以上代码中,我们使用了 hintType 配置项指定错误消息展示的位置为标签(即出现在被验证输入框的旁边),然后设置了两个验证规则(分别对应姓名、邮箱输入框),当输入框的值为空或格式不合法时,提交表单会触发 onError 事件,反之,如果表单验证通过,则会触发 onSuccess 事件。

此外,还可以为验证器绑定 validationError 事件处理程序:

$(document).ready(function () {
    $('#myForm').jqxValidator({
        // ...
        onError: function () {
            // ...
        },
        onSuccess: function () {
            // ...
        }
    });

    $('#myForm').on('validationError', function (event) {
        // 在表单验证出错时自定义错误消息和处理逻辑
        var args = event.args;
        var message = 'There are ' + args.errors.length + ' errors:\n';
        for (var i = 0; i < args.errors.length; i++) {
            message += args.errors[i].message + '\n';
        }
        alert(message);
    });
});

以上代码定义了 validationError 事件处理程序,在表单验证出错时,它会将所有错误消息集中在一起,并弹出一个提示框展示出来。

示例1:

在下面的例子中,我们给出了一个可验证手机号格式的表单,当手机号不符合规则时,在下方显示红色提示信息。

<form id="myForm">
    <div class="form-group">
        <label for="phone">手机号:</label>
        <input type="text" class="form-control" id="phone" name="phone" placeholder="请输入11位手机号" required>
        <div class="invalid-feedback"></div>
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-primary">提交</button>
    </div>
</form>
$(document).ready(function () {
    $('#myForm').jqxValidator({
        hintType: 'label',
        animationDuration: 0,
        rules: [
            { input: '#phone', message: '请输入11位有效手机号码!',
                action: 'keyup, blur', rule: function (input) {
                    return /^1[34578]\d{9}$/.test(input.val());
                }
            }
        ]
    });

    $('#myForm').on('validationError', function (event) {
        var args = event.args;
        for (var i = 0; i < args.errors.length; i++) {
            var error = args.errors[i];
            var $input = $('#myForm').find("[name='" + error.name + "']");
            var $feedback = $input.siblings('.invalid-feedback');
            $feedback.text(error.message);
            $input.addClass('is-invalid');
        }
    });

    $('#myForm').on('validationSuccess', function () {
        alert('表单验证成功!');
    });
});

示例2:

在下面的例子中,我们给出了一个验证多字段互相依赖的表单,当输入的奇数必须大于等于 3,偶数数值也要大于等于 2,否则出现提示信息。

<form id="myForm">
    <div class="form-group">
        <label for="odd">奇数:</label>
        <input type="number" class="form-control" id="odd" name="odd" required>
    </div>
    <div class="form-group">
        <label for="even">偶数:</label>
        <input type="number" class="form-control" id="even" name="even" required>
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-primary">提交</button>
    </div>
</form>
$(document).ready(function () {
    $('#myForm').jqxValidator({
        hintType: 'label',
        animationDuration: 0,
        rules: [
            {
                input: '#odd, #even', message: '奇数必须大于等于 3,偶数数值也要大于等于 2!',
                rule: function (input, commit) {
                    var val = parseInt(input.val());
                    if (isNaN(val)) {
                        return true;
                    }
                    var isOdd = input.attr('id') === 'odd';
                    if (isOdd && val % 2 !== 1) {
                        commit(false);
                    }
                    var even = $('#even').val();
                    if (isOdd && even && even < 2) {
                        commit(false);
                    }
                    if (!isOdd && val % 2 !== 0) {
                        commit(false);
                    }
                    var odd = $('#odd').val();
                    if (!isOdd && odd && odd < 3) {
                        commit(false);
                    }
                    return true;
                }
            }
        ]
    });

    $('#myForm').on('validationError', function (event) {
        var args = event.args;
        for (var i = 0; i < args.errors.length; i++) {
            var error = args.errors[i];
            var $input = $('#myForm').find("[name='" + error.name + "']");
            var $feedback = $input.siblings('.invalid-feedback');
            $feedback.text(error.message);
            $input.addClass('is-invalid');
        }
    });

    $('#myForm').on('validationSuccess', function () {
        alert('表单验证成功!');
    });
});

以上两个例子都是利用 jqxValidator 绑定 validationError 事件,自定义错误提示信息并实现不同的验证逻辑。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQWidgets jqxValidator validationError事件 - Python技术站

(0)
上一篇 2023年5月12日
下一篇 2023年5月12日

相关文章

  • jQWidgets jqxWindow collapse()方法

    jQWidgets是一款jQuery插件,提供了丰富的界面组件,其中包含了jqxWindow组件。jqxWindow组件是一个可伸缩、可拖拽的弹出窗口,collapse()方法是其中的一个重要功能,下面我将详细介绍该方法的使用。 1. 准备工作 在使用jqxWindow组件之前,需要先引入相关的js和css文件。可以通过以下步骤完成: 在网页的<hea…

    jquery 2023年5月12日
    00
  • BootStrap与validator 使用笔记(JAVA SpringMVC实现)

    我来详细讲解一下“BootStrap与validator 使用笔记(JAVA SpringMVC实现)”的完整攻略。 一、什么是 Bootstrap? Bootstrap是Twitter开发的一个前端框架,它提供了一系列已经设计好的UI元素和组件,可以让开发者快速搭建漂亮的响应式网站或Web应用,同时也是目前最流行的前端框架之一。 二、什么是 Validat…

    jquery 2023年5月18日
    00
  • 使用asp.net MVC4中的Bundle遇到的问题及解决办法分享

    让我为您详细讲解使用asp.net MVC4中的Bundle遇到的问题及解决办法: 一、什么是Bundle Bundle是asp.net MVC4中为了解决前端资源(如CSS、JS等文件)合并压缩等问题而出现的解决方案。使用Bundle可以将多个CSS或JS文件合并成一个文件,减少HTTP请求和网络传输时间,提高网页性能。 二、使用Bundle遇到的问题 1…

    jquery 2023年5月27日
    00
  • 动态加载jQuery的两种方法实例分析

    下面我将为你详细讲解如何动态加载jQuery的两种方法实例分析,过程中将包含两条示例说明。 动态加载jQuery的两种方法实例分析 在某些情况下,我们需要在网页中动态地加载jQuery,以便使用其提供的强大功能。以下是两种动态加载jQuery的方法: 方法一:通过script标签动态加载jQuery 我们可以使用document.createElement方…

    jquery 2023年5月27日
    00
  • JavaScript callback回调函数用法实例分析

    JavaScript的callback回调函数是指将一个函数作为参数传递给另一个函数,然后在后者中通过调用前者的方式来实现特定的功能或执行特定的任务。callback回调函数是JavaScript中常用的一种编程技法,运用广泛。本文将详细讲解“JavaScript callback回调函数用法实例分析”。 基本概念 callback回调函数通常用于异步编程中…

    jquery 2023年5月27日
    00
  • jQuery与原生JavaScript选择HTML元素集合用法对比分析

    jQuery是一种快速、简洁的JavaScript库,可以兼容各种浏览器。它在选择DOM元素时,提供了一系列易于使用的方法,易于理解而且代码量少。但是相对于原生JavaScript来说,使用jQuery选择元素集合的代码量会更多一些。下面我们来分析jQuery和原生JavaScript选择HTML元素集合的用法对比。 文档选择器 jQuery 在jQuery…

    jquery 2023年5月28日
    00
  • asp.net使用jQuery获取RadioButtonList成员选中内容和值示例

    下面是详细讲解“asp.net使用jQuery获取RadioButtonList成员选中内容和值示例”的完整攻略。 1. 环境搭建 在进行该示例前需要先安装asp.net和jQuery,并创建一个包含 RadioButtonList 控件的Web表单。 2. 获取RadioButtonList选中内容 在 Web 表单上,RadioButtonList 控件…

    jquery 2023年5月28日
    00
  • jQuery对象与DOM对象之间的转换方法

    jQuery对象和DOM对象在JavaScript中是两种不同的数据类型,它们之间可以相互转换。在实际开发中,我们经常需要使用这些转换方法来完成一些特定的需求。 下面是“jQuery对象与DOM对象之间的转换方法”的完整攻略。 将DOM对象转化为jQuery对象 将DOM对象转化为jQuery对象的方法非常简单,只需要使用jQuery函数即可。示例代码如下:…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部