2011-11-10 58 views
0

下拉列表的重複selctedItem我有一個包含多行的GridView。其中一列包含一個下拉列表,其中又包含多個項目。我只想驗證每行的每個ddl都應該包含一個唯一值。 爲了實現這一點,我寫了一個Jquery代碼。但我找到了更好的解決方案。我的代碼如下:網格不應該包含使用jquery

function gvDDLValidation() { 
      var gvDetDDLs = $("#gvDetails").find("select[id*='ddlGrade']"); 
      $.each(gvDetDDLs, function() { 
       var duplicateExists = false; 
       var currVal = $(this).val(); 
       gvDetDDLs.not(this).each(function() { 
        if ($(this).val() == currVal) { 
         duplicateExists = true; 
         alert("Duplicate entry is not allowed"); 
         $(this).focus(); 
         return false; 
        } 
       }); 
       if (duplicateExists) { 
        return false; 
       } 
      }); 
      return true; 
     } 

回答

1

不,你沒有什麼錯在這裏。也就是說,我會這樣做的方式如下:

  1. 在構建頁面時,使用輸入的值填充數組(使數組索引爲控件的名稱)。
  2. 綁定一個JS函數來更改事件的下拉列表
  3. 在變化的事件處理程序,檢查數組看是否值存在。
  4. 如果錯誤狀態存在

而且我會這麼做的原因,是爲了得到這個錯誤信息給用戶儘快和儘可能接近的變化發生的歷史地顯示錯誤消息在這個時間點。

想想這樣,如果網格中有5個項目,很容易找到哪個下拉列表是重複的。當你有500個時,完全不同的事情。

相關問題