我正在使用jquery.validate插件并面临以下情况:
<form id="myForm" ....>
<input type="text" id="value1"/>
<!-- Here is some code rendered from the partial -->
<script type="text/javascript">
$(document).ready(function() {
var validator = $('#myForm').validate({
rules: {
value_from_partial: {
required: true
}
},
messages: {
value_from_partial: {
required: "Enter your firstname"
}
},
submitHandler: function() {
alert("submitted!");
}
});
});
</script>
<input type="text" id="value_from_partial"/>
<!-- End of code rendered from the partial -->
</form>
<script type="text/javascript">
$(document).ready(function() {
var validator = $('#myForm').validate({
rules: {
value1: {
required: true
}
},
messages: {
value1: {
required: "Enter your firstname"
}
},
submitHandler: function() {
alert("submitted!");
}
});
});
</script>
部分中添加的验证不起作用。当我从主html中删除.validate时,部分工作中的验证。看来jquery.validate不允许在同一个表单上有两个.validate调用。另一方面,我不能为验证器调用“添加”规则,因为我希望我的验证代码来自部分本身(实际上是一个插件)。有没有办法将我的验证逻辑与partial一起包含,并使用jqury.validate而不是手动验证。是否有其他验证框架可以允许这个?谢谢!
答案 0 :(得分:3)
你是不对的,你不能两次打电话给validate()
。嗯,你可以,但这些选项第二次没有效果。
两个选项:
required
类添加到输入而不是添加所需规则。验证器支持此功能。 validate
事件中调用ready
,传递此对象,而不是两次调用validate
。答案 1 :(得分:0)
如果您将大型表格分成多个部分,那么为什么不将每个部分都变成自己的形式呢?在完成每个部分后,您可以使用最终形式的隐藏输入继承值,或者更好地分配会话变量。
答案 2 :(得分:0)
在部分加载之前,您可以尝试将验证器设为全局变量。
var validator;
接下来,您可以尝试取消绑定第二个document.ready块中第一次调用validate()的submit方法:
$('#myForm').unbind('submit');