0

ボタン (チェックボックス) をクリックすると、リストボックス内のすべての項目が消えてしまいます。これを防ぐには??私の削除機能が正しく動作していません。私のコードは次のとおりです。

.aspx ファイル

                    <tr>
                        <td width="150px">
                            <asp:TextBox ID="TextBox1" runat="server"  onkeypress="displayKeyCode_demo(event)"></asp:TextBox>         
                        </td>
                        <td width="200px">
<asp:ListBox ID="LstScan" runat="server" Height="200px" Width="150px"  >
                            </asp:ListBox>

                             <asp:HiddenField runat="server" ID="hdnScan"/>
                        </td>

                        <td width="100px">
                            <asp:Button ID="Button2" runat="server" Text="Remove" OnClientClick="removeItem()" />
                        </td></tr></table>






 javascript:

    <script type="text/javascript">
            function displayKeyCode_demo(e) {
                var code;
                if (!e) var e = window.event;
                if (e.keyCode) code = e.keyCode;
                else if (e.which) code = e.which;
                if (code == 13) {

                    var ListBox = document.getElementById("<%=LstScan.ClientID%>");
                    var TextBox = document.getElementById("<%=TextBox1.ClientID%>");
                    var hdnScan = document.getElementById("<%=hdnScan.ClientID%>");
                var myOption = new Option();
                myOption.text = document.getElementById("<%=TextBox1.ClientID%>").value.trim(); //Textbox's value
                myOption.value = document.getElementById("<%=TextBox1.ClientID%>").value.trim(); //Textbox's value
                hdnScan.value = hdnScan.value + "," + TextBox.value;
                ListBox.appendChild(myOption);
                document.getElementById("<%=TextBox1.ClientID%>").value = '';

//                e.preventDefault();
            }
      }
      function removeItem() {
//          var i;
//          var selectbox = document.getElementById("<%=LstScan.ClientID%>");
//          for (i = selectbox.options.length - 1; i >= 0; i--) {
//              if (selectbox.options[i].selected)
//                  selectbox.remove(i);
          //          }
          document.getElementById("<%=LstScan.ClientID%>").options[document.getElementById("<%=LstScan.ClientID%>").selectedIndex] = null;
      }
4

2 に答える 2

0

このコードで試すことができます

function removeItem()
{
   document.getElementById('<% = LstScan.ClientID %>').options.length = 0;
}
于 2012-10-15T14:03:46.917 に答える
0

jQuery の使用:

すべてのオプションを削除するには:

$('<%=LstScan.ClientID%>').empty();

参照 - .empty()

特定のオプションを削除するには:

$('OPTION[VALUE="valueofOption"]', $("<%=LstScan.ClientID%>")).remove();

参照 - .remove()

于 2012-10-15T14:22:54.107 に答える