簡體   English   中英

使用jQuery從下拉列表ASP .NET中刪除項目

[英]Remove item from dropdown list ASP .NET using jQuery

我在ASP .NET中實現了兩個下拉列表,但是我使用jQuery在客戶端進行了一些檢查,這是這種情況:用戶從ddl1中選擇一個選項,然后從ddl2中選擇一個特定項時,應該刪除ddl1中的一個項或禁用,將通知用戶。 下面的jQuery代碼:在ASP .NET中,我使用“ Onchange”調用該方法

    var myTest = function () {
        var val1 = $('#ContentPlaceHolder1_ddlGxP').val();
        var val2 = $('#ContentPlaceHolder1_ddlFinalizedMethod').val();
        console.log('glpvalue: ' + val1);
        console.log('finalizedmethod: ' + val2);
        if (val1 === '3' && val2 === '2') {
            //  document.getElementById('<%=txtComments.ClientID%>').value = "!Please Insert another GLP Method.";
            $("#ContentPlaceHolder1_ddlGxP[value='3']").remove();
            $("#ContentPlaceHolder1_RequiredFieldValidator10").css({"visibility": "visible", "color": "red"});

            //alert('! Please select another GxP Standard');
            $(':input[type="submit"]').prop('disabled', true);

        }
        else {
            $(':input[type="submit"]').prop('disabled', false);
            $("#ContentPlaceHolder1_ddlGxP[value='3']").remove();
            $("#ContentPlaceHolder1_RequiredFieldValidator10").css({ "visibility": "hidden", "color": "red" });
        }

問題是未刪除i ddl1項。

ddl1的實現

 <div>
        <asp:Label ID="Label2" runat="server" CssClass="stdLabel">GxP standard <span class="mandatory"> *</span></asp:Label>
if (userRole == ("Administrator") ||


<asp:DropDownList ID="ddlGxP" runat="server" CssClass="stdDropdownSmall" OnSelectedIndexChanged="ddlGxP_SelectedIndexChanged" AutoPostBack="true" />
        <asp:RequiredFieldValidator ID="RFVddlGxP" runat="server" ControlToValidate="ddlGxP" InitialValue="0" CssClass="RequiredFieldError" ErrorMessage=" ! Please insert"  />

  else
  <asp:TextBox ID="txtGxPDisabled" runat="server" CssClass="stdTextboxSmallDisabled" Enabled="false" />
     } 
</div>

ddl2的實現

    <div>
         if (!string.IsNullOrEmpty(txtFinalized.Text))
           {
             <asp:Label ID="Label23" runat="server" CssClass="stdLabel">Finalized Method<span class="mandatory"> *</span></asp:Label>
         <%}
           else
           {
               <asp:Label ID="Label17" runat="server" CssClass="stdLabel">Finalized Method </asp:Label>

        }  

if (userRole == ("Administrator") ||
      userRole == ("Expert") ||
      (userRole == ("User") && (txtOwner.Text == "" || txtOwner.Text.ToUpper() == userName.ToUpper())))
  {

        <asp:DropDownList ID="ddlFinalizedMethod" runat="server" CssClass="stdDropdown" OnSelectedIndexChanged="ddlGxP_SelectedIndexChanged" AutoPostBack="true" onchange="myTest()" />

          <asp:RequiredFieldValidator ID="RequiredFieldValidator10" runat="server" ControlToValidate="ddlFinalizedMethod" InitialValue="0" CssClass="RequiredFieldError" ErrorMessage=" !Please select another Standard"  />



         }
  else  
  {
        <asp:TextBox ID="txtFinalizedMethodDisabled" runat="server" CssClass="stdTextboxSmallDisabled" Enabled="false" />
    } 
</div>

您的問題是您要刪除客戶端上的選項,但是會自動回發整個表單-因此,一旦服務器端代碼呈現了控件,它就會包含所有原始元素。 如果您希望更改繼續存在,則服務器將需要了解在客戶端進行的更改-否則您將必須管理服務器端的所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM