2017-07-03 81 views
0

我在ASP .NET中實現了兩個下拉列表,但我使用jQuery在客戶端執行一些檢查,下面是場景:用戶從ddl1中選擇一個選項,然後在選擇來自ddl2的特定項目應該被移除或禁用,並且用戶將被通知。 下面的jQuery代碼: 在ASP .NET我用「的onchange」調用的方法從下拉列表中刪除項目使用jQuery的ASP .NET

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" }); 
     } 

問題是我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> 
+0

然後有什麼問題? –

+0

對不起,該項目不會從列表中刪除,我使用.hide();也沒有工作 – Mindan

+0

請創建一個你的問題的小提琴示例,以便我們可以糾正並讓你知道 –

回答

0

你的問題是,你取消對客戶端的選項,但你自動回發整個窗體 - 所以一旦你的服務器端代碼呈現控件,它就擁有了所有的原始元素。如果您希望更改持續存在,服務器將需要知道在客戶端執行的更改 - 或者您必須管理服務器端的所有內容。

相關問題