2016-08-31 20 views
-1

從DropDownList的重複值我有一個10下拉列表,我想避免重複,問題是,如果我選擇dropdowndownlist隨機第七DROPDOWNLIST我選擇六,以下其餘下拉列表將出現1,我想避免這一點,我想要的是刪除重複的值或可能設置爲空,如果重複值出現,這裏是我的代碼,我希望你可以幫助與JavaScript enter image description here ......Asp.net的Javascript避免基於其他的DropDownList

<div> 
    <table> 
    <asp:DropDownList ID = "ddl1" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem>    
    </asp:DropDownList> 
    <asp:DropDownList ID = "ddl2" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
    <asp:DropDownList ID = "ddl3" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem>  
    </asp:DropDownList> 
    <asp:DropDownList ID = "ddl4" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
    <asp:DropDownList ID = "ddl5" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
     <asp:DropDownList ID = "ddl6" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
     <asp:DropDownList ID = "ddl7" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
     <asp:DropDownList ID = "ddl8" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
     <asp:DropDownList ID = "ddl9" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
     <asp:DropDownList ID = "ddl10" runat="server" > 
     <asp:ListItem Value=""></asp:ListItem> 
     <asp:ListItem Value="1">1</asp:ListItem> 
     <asp:ListItem Value="2">2</asp:ListItem> 
     <asp:ListItem Value="3">3</asp:ListItem> 
     <asp:ListItem Value="4">4</asp:ListItem> 
     <asp:ListItem Value="5">5</asp:ListItem> 
     <asp:ListItem Value="6">6</asp:ListItem> 
     <asp:ListItem Value="7">7</asp:ListItem> 
     <asp:ListItem Value="8">8</asp:ListItem> 
     <asp:ListItem Value="9">9</asp:ListItem> 
     <asp:ListItem Value="10">10</asp:ListItem> 
    </asp:DropDownList> 
     </table> 
    <asp:Button ID="btnSave" runat="server" Text="Save"  
     OnClick="btnSave_Click" /> 
    <asp:Label ID="lblmsg" runat="server"></asp:Label> 
</div> 
</form> 

     <script type="text/javascript"> 

    var Lists = [ 
     document.getElementById("ddl1"), 
     document.getElementById("ddl2"), 
     document.getElementById("ddl3"), 
     document.getElementById("ddl4"), 
     document.getElementById("ddl5"), 
     document.getElementById("ddl6"), 
     document.getElementById("ddl7"), 
     document.getElementById("ddl8"), 
     document.getElementById("ddl9"), 
     document.getElementById("ddl10") 

    ], 
     nbLists = Lists.length; 


    // Binds change events to each list 
    for (var iList = 0; iList < nbLists; iList++) { 
     Lists[iList].onchange = RemoveItems(iList); 
    } 


    function RemoveItems(iList) { 
     return function() { 
      var value = []; 

      // Add the selected items of all previous lists including the one changed 
      for (var jList = 0; jList <= iList; jList++) value.push(Lists[jList].options[Lists[jList].selectedIndex].text); 


      // Hide in all succeeding lists these items 
      for (var kList = iList + 1; kList < nbLists; kList++) 
       HideItems(kList, value); 
     } 
    } 


    // Hide items selected in previous lists in all next lists 
    function HideItems(iList, value) { 
     var nbOptions = Lists[iList].options.length, 
      nbValues = value.length, 
      found; 

     if (nbValues === 0) return; 

     for (var iOption = 0; iOption < nbOptions; iOption++) { 
      // Find if this element is present in the previous lists 
      found = false; 
      for (var iValue = 0; iValue < nbValues; iValue++) { 
       if (Lists[iList].options[iOption].text === value[iValue]) { 
        found = true; 
        break; 
       } 
      } 

      // If found, we hide it 
      if (found) { 
       Lists[iList].options[iOption].style.display = "none"; 
       Lists[iList].options[iOption].selected = ""; 
      } 
       // else we un-hide it (in case it was previously hidden) 
      else 
       Lists[iList].options[iOption].style.display = ""; 
     } 
    } 
     </script> 

+0

您編寫的代碼不按預期工作的方式? – David

+0

先生,如果你可以看到,如果選擇交替選擇的值,那麼以後我會再次選擇一個以前的值會複製,你可以測試我的代碼也看到它..感謝 – gunter

+1

'「你可以測試我的代碼也看到它」' - 你完全誤解了Stack Overflow的工作原理。我們不是你個人的調試器。當*你*測試你的代碼時,在哪裏/如何*具體*它會失敗嗎?當然,您可以選擇重複值,因爲選擇中存在重複的值。你期望什麼可以防止這種情況發生?您試圖以何種方式防止這種情況發生,以及該嘗試如何不按預期工作? – David

回答

0

爲什麼不先使用clienside驗證一個CustomValidator

 <asp:DropDownList ID="ddl1" runat="server"> 
      <asp:ListItem Text="1" Value="1"></asp:ListItem> 
      <asp:ListItem Text="2" Value="2"></asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="ddl2" runat="server"> 
      <asp:ListItem Text="1" Value="1"></asp:ListItem> 
      <asp:ListItem Text="2" Value="2"></asp:ListItem> 
     </asp:DropDownList> 

     <asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" /> 
     <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="There are duplicate values" ClientValidationFunction="noDuplicates"></asp:CustomValidator> 

     <script type="text/javascript"> 
      function noDuplicates(oSrc, args) { 
       var ddl1 = document.getElementById('<%= ddl1.ClientID %>').selectedIndex; 
       var ddl2 = document.getElementById('<%= ddl2.ClientID %>').selectedIndex; 

       if (ddl1 != ddl2) { 
        args.IsValid = true; 
       } else { 
        args.IsValid = false; 
       } 
      } 
     </script> 
+0

好先生,我會嘗試你的代碼.. – gunter

+0

謝謝您先生的想法...它確實有助於 – gunter