2017-07-03 30 views
0

ASP .NETで2つのドロップダウンリストを実装しましたが、jQueryを使用してクライアント側でいくつかのチェックを行いました。ここでシナリオがあります:ユーザーはddl1からオプションを選択してから選択しますddl1の特定の項目を削除または無効にして、ユーザーに通知する必要があります。 jQueryのコードの下 :私は、問題は、私はDDL1項目が除去されずあるドロップダウンリストから項目を削除する

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

メソッドを呼び出すために「のonchange」を使用するASP .NETで 。

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

の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> 

実装の実装あなたの問題は、クライアント側のオプションを削除しているということですが、全体をバック自動投稿していますフォーム - サーバーサイドコードがコントロールをレンダリングすると、それは元の要素をすべて持ちます。変更を維持するには、サーバー側で行われた変更をサーバーが認識する必要があります。または、サーバー側のすべてを管理する必要があります。

関連する問題