2010-11-23 111 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