jQuery:在提交之前验证
问题描述:
我想在提交之前验证我的表单。我正在尝试使用下面的代码,但它始终提交表单值:jQuery:在提交之前验证
$('#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;
});
任何帮助?
问候
哈维尔
答
你需要调用.validate()
在document.ready
处理程序,因为它建立验证(和一个已经在这里运行submit
事件)不运行验证。它应该是这样的:
$(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...");
}
});
});
这涉及没有.submit()
处理程序添加的形式本身(.validate()
做到这一点的下方),而是使用submitHandler
option仅运行时的形式是有效的,invalidHandler
是它的对手,当表单无效时运行。
谢谢,但它不揭露窗体,也没有加载引入的值。 – ziiweb 2010-11-23 14:09:29