在启动时设置值时,jQuery Validator“required”不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在启动时设置值时,jQuery Validator“required”不起作用相关的知识,希望对你有一定的参考价值。

我有一个jQuery Validator的问题。我想在文本输入上使用“required”属性。当输入通过html代码设置值属性(在Firefox(3.5)上测试,并且在IE 8上 - 在IE上它工作得更好)时,它不起作用。

故事:1。页面加载; 2.价值被清除; 3.重点改变了。 4.没有任何反应,但应显示错误信息; 5.回到现场并输入一些字符。 6.改变焦点; 7.回到田野; 8.清理现场。 9.即使在离开现场之前也会显示错误。

HTML代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <script src="Web/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script src="Web/Scripts/jquery.validate.js" type="text/javascript"></script>    
</head>
<body>
    <form id="form1">
        <input type="text" id="name1" name="name1" value="test" /><br />
        <input type="text" />
    </form>

    <script type="text/javascript">
        $(document).ready(function() {
            var validator = $("form").validate({

                rules: {
                    name1: {
                        required: true,
                        minlength: 2
                    }
                },
                messages: {
                     name1: "bad name"
                },
            });
        });
    </script>
</body>
</html>
答案

你可以覆盖onfocusout处理程序,使其工作就像你想要的(更热切):

$(function() {
    var validator = $("form").validate({
        rules: { name1: { required: true, minlength: 2 } },
        messages: { name1: "bad name" },
        onfocusout: function(element) { $(element).valid(); }
    });
});

你可以看到old broken demo (like your question) hereupdated one with onfocusout that works here

另一答案

当您的验证器已经定义时,用于不显眼的验证已经需要修改Michel答案:

var validator = $('form').validate();

validator.settings.onfocusout = function(element) {
    $(element).valid();
};
/*validator.settings.onkeyup = function (element) {
    $(element).valid();
};*/
另一答案

你忘了说消息的验证方式:试试这个:

 messages: { 
             name1:
                   {
                      required : "This is a required field",
                     minlength: "Please enter 2 chars or more"
                   }
            }

米歇尔

以上是关于在启动时设置值时,jQuery Validator“required”不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 设置元标记值时遇到问题 [重复]

Nice Jquery Validator 从 jQuery Validation 迁移

使用 Jquery Validator 出现验证错误时如何避免或禁用表单提交

JQuery Validator 关闭所有表单字段的工具提示

jquery.validation自定义正则表达式验证

我的学习之路_第二十八章_JQuery 和validator插件