2010-11-23 10 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; 

    }); 

助けが必要ですか?

よろしく

それはそれはない実行検証を行いバリデーション(と、すでにここで実行していますsubmitイベントで)を設定しますので、ハビエル

答えて

3

あなたは、あなたのdocument.readyハンドラで.validate()を呼び出す必要があります。それは次のようになります。

$(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()ハンドラではなくinvalidHandlerはその対応で、フォームが有効であるときにのみ実行されるsubmitHandler optionを使用し、(.validate()はこの下にありません)、フォーム自体に加えられていないが、関係しますフォームが無効なときに実行されます。

+0

ありがとうございますが、フォームのマスクを解除したり、導入された値をロードしたりすることはありません。 – ziiweb

+0

@ user248959 - 「導入された値を読み込む」...説明できますか? –

+0

申し訳ありませんが、私のせいです、ありがとう! – ziiweb

関連する問題