2012-03-29 68 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; 
        } 

       }); 

}); 

如果用戶嘗試提交帶有三個選擇框的值的表單是-1,則使用該函數生成警報。警報出現不止一次更改選擇框值,任何想法有什麼不對?如何停止多個警報的JavaScript?

+0

這真的是代碼嗎?你在change()事件中有一個本地函數?根據你的例子,它永遠不會被調用。我很困惑。 – 2012-03-29 12:53:58

+0

對不起,正確的代碼在上面。 – 2012-03-29 12:55:24

+0

你的代碼有點笨拙。爲什麼verifyCats在你的匿名函數中? – 2012-03-29 12:55:55

回答

5

您在change事件內部創建了一個click事件,也就是說,每次觸發change事件時都會創建一個新的click事件(除了之前創建的事件之外)。

只需在更改事件之外移動單擊事件即可。