2012-07-26 3 views
0

J'ai ASP.NET ListBox et CheckBoxList, et onchange je dois alerter les éléments sélectionnés qui est fait dans l'extrait de code suivant, mais je veux me débarrasser de la pour la boucle. Peux-tu aider s'il te plait?ListBox et CheckBoxList, alerter les éléments sélectionnés sans la boucle for

<asp:ListBox ID="ListBox1" runat="server" Width="10%" SelectionMode="Multiple"> 
    <asp:ListItem Selected="True" Value="1">White</asp:ListItem> 
    <asp:ListItem Selected="False" Value="2">Black</asp:ListItem> 
    <asp:ListItem Value="3">Red</asp:ListItem> 
    <asp:ListItem Value="4">Green</asp:ListItem> 
    <asp:ListItem Value="5">Blue</asp:ListItem> 
</asp:ListBox> 
<br /> 
<br /> 
<asp:CheckBoxList ID="CheckBoxList1" runat="server" Width="10%"> 
    <asp:ListItem Selected="True" Value="1">White</asp:ListItem> 
    <asp:ListItem Selected="False" Value="2">Black</asp:ListItem> 
    <asp:ListItem Value="3">Red</asp:ListItem> 
    <asp:ListItem Value="4">Green</asp:ListItem> 
    <asp:ListItem Value="5">Blue</asp:ListItem> 
</asp:CheckBoxList> 

JavaScript

$(document).ready 
(
    function() 
    { 
     $("#ListBox1").change 
     (
      function() 
      { 
       for (var i = 0; i < $("#ListBox1 :selected").length; i++) 
       { 
        alert("ListBox Number of Items: " + $("#ListBox1 option").length + "\n" 
        + "ListBox Number of Selected Items: " + $("#ListBox1 :selected").length + "\n" 
        + "ListBox Value: " + $("#ListBox1 :selected")[i].value + "\n" 
        + "ListBox Text: " + $("#ListBox1 :selected")[i].text); 
       } 
      } 
     ); 
    } 
); 

$(document).ready 
(
    function() 
    { 
     $("#CheckBoxList1").change 
     (
      function() 
      { 
       for (var i = 0; i < $("#CheckBoxList1 :input").length; i++) 
       { 
        if ($("#CheckBoxList1 :input")[i].checked) 
        { 
         alert("CheckBoxList Number of Items: " + $("#CheckBoxList1 :input").length + "\n" 
          + "CheckBoxList Number of Checked Items: " + $("#CheckBoxList1 input:checked").length + "\n" 
          + "CheckBoxList Value: " + $("#CheckBoxList1 :input")[i].value + "\n" 
          + "CheckBoxList Text: " + $("#CheckBoxList1 label")[i].innerHTML); 
        } 
       } 
      } 
     ); 
    } 
); 

Merci

Répondre

0

Vous pouvez utiliser la méthode .each() à boucle par élément, this fait référence à l'élément courant dans l'itération.

$(document).ready 
(
    function() 
    { 
     $("#ListBox1").change 
     (
      function() 
      { 
       $("#ListBox1 :selected").each(function() 
       { 
        alert("ListBox Number of Items: " + $("#ListBox1 option").length + "\n" 
        + "ListBox Number of Selected Items: " + $("#ListBox1 :selected").length + "\n" 
        + "ListBox Value: " + this.value + "\n" 
        + "ListBox Text: " + this.text); 
       } 
      } 
     ); 
     $("#CheckBoxList1").change 
     (
      function() 
      { 
       $("#CheckBoxList1 :input").each(function() 
       { 
        if (this.checked) 
        { 
         alert("CheckBoxList Number of Items: " + $("#CheckBoxList1 :input").length + "\n" 
          + "CheckBoxList Number of Checked Items: " + $("#CheckBoxList1 input:checked").length + "\n" 
          + "CheckBoxList Value: " + this.value + "\n" 
          + "CheckBoxList Text: " + this.innerHTML); 
        } 
       } 
      } 
     ); 
    } 
); 
Questions connexes