我使用 jQuery 验证插件的 validate 方法设置表单验证,并且有一个修改输入元素值的提交处理程序(我使用 YUI 编辑器,它需要调用 saveHTML() 来将 iframe 的内容复制到 textarea 元素。 )。提交表单时,我希望验证器在执行提交处理程序后验证表单。但如果在验证调用后注册,它不会执行我的提交处理程序。
例如,
<form id="form1" action="/test">
<input type="text" name="txt1" id="txt1" />
<input type="submit" value="submit" />
$(document).ready(function() {
$("#form1").submit(function() {
$("#txt1").val("123456");
});
$("#form1").validate({
rules: {
txt1: {
maxlength: 5
}
}
});
});
表单在我的提交处理程序之后进行验证,因此提交被取消。
$(document).ready(function() {
$("#form1").validate({
rules: {
txt1: {
maxlength: 5
}
}
});
$("#form1").submit(function() {
$("#txt1").val("123456");
});
});
但是,如果我更改顺序,则表单会在提交处理程序之前进行验证。
最佳答案
您可以使用 beforeSubmit
回调来设置值:
$(function() {
$('#form1').validate({
rules: {
txt1: { maxlength: 5 }
},
beforeSubmit: function(arr, $form, options) {
$('#txt1').val('123456');
return true;
}
});
});
关于使用提交处理程序进行 jQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218409/