javascript - jQuery 验证在按键时不触发

标签 javascript jquery jquery-validate

Jquery 验证不会在按键时检查其是否正确。它在焦点离开元素后触发。焦点移出后,验证检查在按键时开始。为什么是这样?这是我的代码

   $('input[name=roleName]').keypress(function () {

        $('form').validate({
            rules: {
                roleName: {
                    required: true,
                    isRoleUsed: true
                }
            },
            messages: {
                roleName: {
                    required: "You have to enter role name"
                }
            }
        });

    });

最佳答案

.validate() 方法永远不会进入按键事件处理程序内部。它只是插件的初始化方法,并且仅进入 DOM 就绪事件处理程序内部。

然后,一旦插件初始化,就会自动捕获 keyup 事件。

$(document).ready(function() {

    $('form').validate({
        rules: {
            roleName: {
                required: true,
                isRoleUsed: true
            }
        },
        messages: {
            roleName: {
                required: "You have to enter role name"
            }
        }
    });

});

演示:http://jsfiddle.net/9hf0pr6a/1/

请注意,默认情况下,验证是“惰性”的,这意味着您可以在评估必需的验证规则之前尝试填写表单。直到第一次单击提交按钮后才会捕获 keyup 事件。

否则,您可以通过覆盖 onkeyup 选项将 keyup 行为更改为“Eager”验证。

$(document).ready(function() {

    $('form').validate({
        onkeyup: function(element) {
            this.element(element);
        },
        rules: {
            roleName: {
                required: true,
                isRoleUsed: true
            }
        },
        messages: {
            roleName: {
                required: "You have to enter role name"
            }
        }
    });

});

演示:http://jsfiddle.net/9hf0pr6a/

关于javascript - jQuery 验证在按键时不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384050/

相关文章:

javascript - 单击按钮上的索引切换 Javascript 上的数组值

javascript - 检测鼠标方向 - JavaScript

javascript - jQuery 单击未将值适本地附加到文本框

php - 当任何值不准确时,我们如何停止 HTML 表单提交按钮

jquery - 根据黑名单数组验证输入值

jQuery Validate - 要求至少填写一组中的一个字段

javascript - String.fromCharCode 仅适用于一个字符

jquery - 动态添加的 div 影响容器 mouseover 和 mouseout 事件

jquery - http ://itstimefor. skype.com 背后的技术是什么

php - 如何在 symfony 1.4 中访问 actions.class.php 中的 POST 参数?