0

我不知道为什么 form2 验证失败但 form1 通过验证(使用 jQuery 验证插件)。如何使用下面的代码使 form1 验证失败?

HTML

<form id="form1" method="get" action="">
    <input type="text" id="viewName1">
     <h3></h3>
</form>

<form id="form2" method="get" action="">
    <input type="text" id="viewName2" required>
     <h3></h3>
</form>

JAVASCRIPT

$('#form1').validate({
    rules: {
        viewName: 'required'
    },
    messages: {
        viewName: '* view name is required'
    },
    submitHandler: function () {
        $('#form1 h3').text('Form1 valid');
    },
    invalidHandler: function (event, validator) {
        $('#form1 h3').text('Form1 invalid');
    }
});
$('#form1').submit();

$('#form2').validate({
    submitHandler: function () {
        $('#form1 h3').text('Form1 valid');
    },
    invalidHandler: function (event, validator) {
        $('#form1 h3').text('Form1 invalid');
    }
});
$('#form2').submit();

小提琴 http://jsfiddle.net/jeljeljel/5xFhA/4/

4

1 回答 1

1

它不起作用,因为您的输入元素没有name属性。这是插件的要求。

请参阅文档的“标记建议”部分

“该name属性对于输入元素是‘必需的’,没有它验证插件将无法工作。”

$('#form1').validate({
    rules: {
        viewName: 'required' // <-- "viewName" is the 'name' attribute, not id
    },
    messages: {
        viewName: '* view name is required'  // <-- "viewName" is the 'name' attribute, not id
    },
    submitHandler: function () {
        $('#form1 h3').text('Form1 valid');
    },
    invalidHandler: function (event, validator) {
        $('#form1 h3').text('Form1 invalid');
    }
});

演示:http: //jsfiddle.net/5xFhA/10/

于 2013-10-21T20:50:20.373 回答