2013-09-24 115 views
0

Im在這個問題中陷入了困境,當我檢測到相同的值時,當它提交併且錯誤被觸發時,按鈕不可按下,就像它停留在保存狀態一樣。有人可以幫助我解決這個問題嗎?在關閉警報窗口後,提交按鈕不可點擊

繼承人我的Jquery

$("#btnSaveShift").on('click', function (e) { 

     var gvDetDDLs = $('#positionShiftGrid').find("input[name=shiftDay]"); 
     $.each(gvDetDDLs, function() { 
      var duplicateExists = false; 
      var ddlShift = $("#ddlShiftDay option:selected").text(); 
      var currVal = $(this).val(); 
      gvDetDDLs.not(this).each(function() { 
       if (ddlShift == currVal) { 
        duplicateExists = true; 
       } 
      }); 
      if (duplicateExists) { 
       alert("Duplicate entry is not allowed"); 
       e.preventDefault(); 
       return false; 
      } 

     }); 
     return true; 

    }); 
+0

又是什麼您的HTML看起來像返回false? – Novocaine

+0

你可以使用onsubmit事件處理函數,所以你不需要調用preventdefault(),只是返回true或false – Shadow

+0

你沒有比較'gvDetDDLs.not(this)'中找到的任何東西,而只是比較'ddlShift = = currVal'這是從循環之外!爲什麼你需要那個循環呢? – rps

回答

1

在第一,你應該檢查這對錶單提交,而不是點擊按鈕。

在這種情況下,e.preventDefault謀殺按鈕的行爲。

+1

+1一致。 –

+0

:) Helpfull&funny – mcamier

+0

嗯。 。完成表單提交檢查,表單提交,同樣發生。警報消息顯示後。 。提交按鈕不起作用/不可點擊。 –

0

,如果你希望你的按鈕,即使錯誤移除工作,防止違約和在你的代碼

+0

,條件爲真時循環不會停止 –

+0

您可以將它放在jsfiddle上嗎? –