作为一个相对jquery新手,如果我的问题有一个简单的解决方案,请耐心等待。在unique ID
选择时,使用jquery validate可以很好地工作,例如
$("#myForm").validate({
debug: false,
rules:
{
field1: "Required"
},
messages:
{
field1: "Required"
},
submitHandler: function(form) {
$.post('formAction.php', $("#myForm").serialize(), function(data) {
$('#results').html(data);
});
}
});
我需要将其扩展为通常使用一些自动生成的表单myForm1, myForm2
等。
我可以通过公共类选择器$("myForm")
进行验证,然后将submitHander
应用于特定表单(myForm1
,myForm2
等),例如:
$(".myForm").validate({
debug: false,
rules:
{
field1: "Required"
},
messages:
{
field2: "Required"
},
submitHandler: function(form) {
$.post('formAction.php', $(this).serialize(), function(data) {
$('#results').html(data);
});
}
});
非常感谢
答案 0 :(得分:0)
试试这个
$('[id^=myForm]').validate(); // work for id pattern myForm1, myForm2...
// this selector will target forms whose id start
// with myForm
或
$('.myForm').validate() // giving a common class to all forms
像这样自动完成调用submitHandler
validator.settings.submitHandler.call( validator, validator.currentForm );
这意味着this
将引用validator object
而非form
,因此请使用form
参数来引用表单并序列化它的字段
$(form).serialize()
因此,在您提交处理程序而不是$(this).serialize()
使用$(form).serialize()
。
答案 1 :(得分:0)
验证方法不链接对表单的引用,因此建议$(form).serialize仍然引用共享公共类的第一个表单。尽管如此巨大的帮助,因为它让我走上正确的轨道找到工作: -
https://github.com/jzaefferer/jquery-validation/issues/157
$(".myForm").each(function(index,element) {
$(element).validate({
debug: false,
rules:
{
field1: "Required"
},
messages:
{
field2: "Required"
},
submitHandler: function(form) {
$.post('formAction.php', $(form).serialize(), function(data) {
$('#results').html(data);
});
}
});
});