2014-03-03 170 views
0

我有一個ASP.NET應用程序,我實現了下面的代碼來禁止用戶雙擊並提交按鈕,因此代碼背後的方法不會被執行一次。點擊驗證並禁用按鈕

OnClientClick="this.disabled = true; this.value = 'Submitting...';" UseSubmitBehavior="false" onclick="BtnSubmit_Click" 

這是可以正常使用,但我已經實現了頁面的JavaScript形成驗證和下面的代碼是不工作的一個:

OnClientClick="return validation(); this.disabled = true;" UseSubmitBehavior="false" onclick="BtnAdd_Click" 

的驗證,以確保用戶不會留下任何空字段,但是如果驗證成功,單擊該按鈕時,該按鈕將被禁用,但onclick方法未被調用。

爲什麼會發生這種情況?

+0

你有沒有打過電話的validateion功能上提交事件表單標籤:'<形式行動=「」的onsubmit =「返回確認()」>'並保持onClick原樣? – Javad

回答

0

Rikket,你必須編寫不同的代碼,以防止重複提交的形式,一旦它的提交,jQuery的功能可能會有所幫助,類似下面,把這個你的JavaScript驗證功能後:

jQuery.fn.preventDoubleSubmission = function() { 
      var $form = $(this); 
      $form.on('submit', function (e) { 
       if ($form.data('submitted') === true) { 
        e.preventDefault(); 
       } else { 
        $form.data('submitted', true); 
       } 
      }).find('input').on('change', function() { 
       $form.data('submitted', false); 
      }); 
      return this; 
     }; 

而且可以在驗證其他內之後被稱爲:

if (nullFieldTracked == 'true') { 
        alert(nullExceptionMsg); 
        return false; 
       } 
       else { 
        $('form').preventDoubleSubmission(); 
       } 
+0

其不提交表單,而是雙方提交方法背後的代碼。我的描述可能有點誤導。更新了 – rikket

+0

張貼您的與原始的問題的javascript代碼。 – Vishal