我正在尝试在提交之前验证我的表单。我正在尝试使用下面的代码,但它始终提交表单值:
$('#gestione_profilo').submit(function () {
$("#gestione_profilo").validate({
rules: {
'person_data[document_number]': "required"
},
messages: {
'person_data[document_number]': "required"
}
});
form_data = $(this).serialize();
$.ajax({
url: "<?php echo url_for('profile/index') ?>",
type: "POST",
data: form_data,
success: function() { $("#forma_profile").unmask(); }
});
$("#forma_profile").mask("Aggiornando dati...");
return false;
});
任何帮助?
此致
哈维尔
答案 0 :(得分:3)
您需要在document.ready
处理程序中调用.validate()
,因为设置验证(以及已在此处运行的submit
事件)它不会't 运行验证。它应该是这样的:
$(function() {
$("#gestione_profilo").validate({
rules: {
'person_data[document_number]': "required"
},
messages: {
'person_data[document_number]': "required"
},
submitHandler: function(form){
$.post("<?php echo url_for('profile/index') ?>", $(form).serialize(),
function() {
$("#forma_profile").unmask();
});
$("#forma_profile").mask("Aggiornando dati...");
}
});
});
这涉及在表单上添加 no .submit()
处理程序(.validate()
在下面执行此操作),而是使用仅在表单运行时运行的submitHandler
option有效的,invalidHandler
是它的对应物,它在表单无效时运行。