我想在两个部分中验证一个表单,当我单击btn
按钮然后验证正确完成,但是当我点击btnn
它不起作用并始终验证field1
这是我的代码
jQuery的:
$(document).ready(function() {
$("#form1").validate({
rules: {
field1: "required"
},
messages: {
field1: "Please specify your name"
}
})
$('#btn').click(function() {
$("#form1").valid();
});
$("#form1").validate({
rules: {
field2: "required"
},
messages: {
field2: "Please specify your name"
}
})
$('#btnn').click(function() {
$("#form1").valid();
});
});
HTML
<form id="form1" name="form1">
Field 1: <input name="field1" type="text" />
Field 2: <input name="field2" type="text" />
</form>
<div>
<input id="btn" type="button" value="Validate"/>
<input id="btnn" type="button" value="Validate"/>
</div>
有什么建议吗?
答案 0 :(得分:1)
按照设计,您无法在同一表单上调用.validate()
方法两次。 .validate()
方法用于初始化,第二个实例将始终被忽略。
这里有两个选项:
<form>
容器中。OR
.rules()
方法根据单击的按钮动态添加/删除规则。如果您显示/隐藏这些字段,则在.validate()
的同一实例中声明所有规则,并利用此插件的默认行为,即忽略所有隐藏字段。由于您没有透露多部分表格的工作概念,或者想要分两部分验证的目的,我将向您展示最简单的解决方案,即建议#1。
<强>的jQuery 强>:
$(document).ready(function() {
$("#form1").validate({ // initialize `form1`
rules: {
field1: "required"
},
messages: {
field1: "Please specify your name"
}
});
$('#btn').click(function() {
$("#form1").valid();
});
$("#form2").validate({ // initialize `form2`
rules: {
field2: "required"
},
messages: {
field2: "Please specify your name"
}
});
$('#btnn').click(function() {
$("#form2").valid();
});
});
<强> HTML 强>:
<form id="form1" name="form1">
Field 1: <input name="field1" type="text" />
</form>
<form id="form2" name="form2">
Field 2: <input name="field2" type="text" />
</form>
<div>
<input id="btn" type="button" value="Validate"/>
<input id="btnn" type="button" value="Validate"/>
</div>
这是另一个答案,展示了如何完成多步骤表格: