2010-11-23 108 views
0

我想在提交之前验证我的表单。我正在尝试使用下面的代码,但它始终提交表单值: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; 

    }); 

任何帮助?

问候

哈维尔

回答

3

你需要调用.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是它的对手,当表单无效时运行。

+0

谢谢,但它不揭露窗体,也没有加载引入的值。 – ziiweb 2010-11-23 14:09:29