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 jqxTreeGrid statusBarHeight属性

    以下是关于 jQWidgets jqxTreeGrid 组件中 statusBarHeight 属性的详细攻略。 jQWidgets jqxTreeGrid statusBarHeight 属性 jQWidgets jqxTreeGrid 的 statusBarHeight 属性用于组件底部状态栏的高。您可以使用此属性来自定义状态栏的高度以应您的应用程序需求…

    jquery 2023年5月12日
    00
  • jQWidgets jqxPivotGrid itemsRenderer属性

    以下是关于 jQWidgets jqxPivotGrid 组件中 itemsRenderer 属性的详细攻略。 jQWidgets jqxPivotGrid itemsRenderer 属性 jQWidgets jqxPivotGrid 组件的Renderer 属性用于自定义数据透视表中的单元格内容。 语法 $(‘#pivotGrid’).jqxPivotG…

    jquery 2023年5月12日
    00
  • jQuery UI Datepicker dayNamesShort选项

    jQuery UI Datepicker dayNamesShort选项 jQuery UI Datepicker插件的dayNamesShort选项用于设置日期选择器中星期几的缩写名称。本文将详细介绍dayNamesShort选项的语法和用法,并提供两个示例。 语法 以下是dayNamesShort选项的基本语法: $( ".selector&q…

    jquery 2023年5月9日
    00
  • jQuery trigger()方法用法介绍

    下面我来详细讲解“jQuery trigger()方法用法介绍”。 什么是jQuery trigger()方法 jQuery trigger()方法是用于在元素上触发指定的事件。它可以在不实际触发事件的情况下模拟一个事件,从而能够调用元素绑定的事件处理函数。 trigger()方法的语法 trigger()方法的语法如下: $(selector).trigg…

    jquery 2023年5月27日
    00
  • jQWidgets jqxExpander refresh()方法

    jQWidgets jqxExpander refresh()方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包括表格等。jqxExpander是jQ的一个组件,创建可折叠面板。jqxExpander提供了多个方法,其中包括refresh()方法。本文将详细介绍refresh()方法,并提供两个示例。 refresh()方…

    jquery 2023年5月9日
    00
  • 如何在jQuery中的hover事件中运行代码

    使用jQuery可以轻松地在hover事件中运行代码。以下是详细的攻略,包含两个示例,演示如何在jQuery的hover事件中运行代码: 步骤1:引入jQuery库 在使用之前,需要先在HTML文引jQuery库。可以通过以下方式引入: <script src="https://code.jquery.com/jquery-3.6.0.min…

    jquery 2023年5月9日
    00
  • jQuery Keydown()方法

    jQuery keydown()方法用于在按下键盘上的键时绑定一个或多个事件处理程序。该方法类似于jQuery on()方法,但是它只在按下键盘上的键时触发事件处理程序。 以下是keydown()方法的详细攻略: 语法 $(selector).keydown(handler) 参数 selector:必需,用于选择要绑定事件的元素。 handler:必需,用…

    jquery 2023年5月9日
    00
  • jQWidgets jqxTreeGrid updateRow()方法

    以下是关于 jQWidgets jqxTreeGrid 组件中 updateRow() 方法的详细攻略。 jQWidgets jqxTreeGrid updateRow() 方法 jQWidgets jqxTreeGrid 的 updateRow() 方法用于更新行的数据。您可以使用此来更新行的数据,以便在需要时执行其他操作。 语法 $(‘#treegrid…

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