2012-03-29 9 views
0
$('#ms_cats_meta_eduyear, #ms_cats_meta_semester, #ms_cats_meta_subject').change(function() { 



       $('#publish').removeClass('button-primary-disabled'); 
       $('#save-post').removeClass('button-disabled'); 

       $('input#publish').click(function() { 
        var eduyear_val = $("#ms_cats_meta_eduyear").val(); 
        var semester_val = $('#ms_cats_meta_semester').val(); 
        var subject_val = $("#ms_cats_meta_subject").val(); 

        if (eduyear_val == -1 || semester_val == -1 || subject_val == -1){ 
         var msg= "من فضلك تأكد من ادخال جميع حقول اختيار التصنيف."; 
         $('#ajax-loading').hide(); 
         alert(msg); 
         return false; 

        }else{ 
         $('#publish').removeClass('button-primary-disabled'); 
         $('#save-post').removeClass('button-disabled'); 

         return true; 
        } 

       }); 

}); 

ユーザーが3つの選択ボックスの値を使ってフォームを送信しようとすると、警告を生成する機能を使用しています。 Alertは、選択ボックスの値を変更する際に複数回表示されますが、何が問題なのでしょうか?複数のアラートからjavascriptを停止するにはどうすればよいですか?

+0

これは本当にコードですか? change()イベントの内部にローカル関数がありますか?あなたの例に基づいて、それは決して呼び出されません。よくわかりません。 –

+0

申し訳ありませんが、正しいコードは上記です。 –

+0

あなたのコードはちょっと怪しいです。あなたの無名関数の中でなぜverifyCatsが使用されていますか? –

答えて

5

changeイベント内でクリックイベントを作成します。つまり、変更イベントがトリガーされるたびに(以前に作成されたものに加えて)新しいクリックイベントが作成されます。

clickイベントをchangeイベントの外に移動するだけです。

関連する問題