JQuery验证 - 使用.valid()时需要.validate()吗?

时间:2012-04-03 13:31:45

标签: jquery asp.net jquery-validate

我最近意识到我的一个页面不包含:$(“#form1”)。validate();调用,但页面在'required'字段上进行jquery验证。

我的页面底部有代码:

<script type="text/javascript">
    var originalDoPostBack = __doPostBack;
    __doPostBack = function(sender, args) {
        if ($("#form1").valid() === true) {
            originalDoPostBack(sender, args);
        }
    };
</script>

我的测试和查看来源似乎我不需要 $(“#form1”)。validate()如果我有 $(“#form1”)。 ()即可。

这是对的吗?

1 个答案:

答案 0 :(得分:2)

$.validate()用于设置表单及其用于验证的字段。例如,设置规则,例如requiredemail,并定义要在错误上显示的消息。它还会附加到表单的submit事件,以便在表单提交时自动调用$("form").valid()

示例:

$("form").validate({
    rules: { 
        Username: { required: true, email: true },
        Password: { required: true }
    },
    messages: { 
        Username: {
            required: "Please enter your username",
            email: "Please enter a valid username"
        },
        Password: "Please enter your password"
    }
});

<form>
    <input type="text" id="Username" name="Username" />
    <input type="text" id="Password" name="Password" />
</form>

或者,您可以使用规则类,以及错误消息字段的title属性。使用此方法,您需要在提交表单时手动调用$("form").valid()

$("form").submit(function() {
    return $(this).valid();
});

<form>
    <input type="text" id="Username" name="Username" class="required email" title="Please enter your username" />
    <input type="text" id="Password" name="Password" class="required" title="Please enter your password" />
</form>

值得注意的是,第一种方法可以让您更好地控制表单的外观和设置,同时也是IMO关注点的更好分离。后者的唯一好处是简洁。