2016-04-13 4 views
0

私はいくつかの場所で回答を探し、トピックlike thisをチェックしましたが、該当する回答を見つけることができませんでした。ASP.NET:はい/いいえラジオボタン、はいの場合、TextBoxを有効にしますか?

私は紙のフォーム用のウェブアプリケーションを作成しています(投稿したリンクのユーザーとよく似ています)。しかし、そのユーザーとは異なり、私はディスプレイ用の更新パネルを使用していません。彼のポストは、彼がそれを働かせるためにしたことをどのように複製するかを理解するのに十分な記述ではありませんでした。

私がしたいのは、asp RadioButtonListを持つことです。 「はい」にチェックが入っている場合は、「レポートされた日付」を有効にします(フォーム上で現在どのように表示されているかは以下を参照)。 "Else"は無効にします。

enter image description here

<div class="col-xs-6 text-right"> 
         <b>Reported to a Supervisor?</b><br> 
        </div> 
        <asp:RadioButtonList ID="RadioButtonList_ReportedToSupervisor" runat="server" 
         RepeatDirection="Horizontal"> 
         <asp:ListItem Text="Yes" Value="1"></asp:ListItem> 
         <asp:ListItem Text="No" Value="0"></asp:ListItem> 
        </asp:RadioButtonList> 
        <br> 
        <div class="col-xs-6 text-right"> 
         <b>Reported Date:</b><br> 
        </div> 
        <div class="col-xs-6"> 
         <asp:TextBox 
          runat="server" 
          ID="TextBox_ReportedDate" 
          class="form-control" 
          style="max-width:125px" /> 
         <asp:RegularExpressionValidator 
          ID="RegularExpressionValidator_ReportedDate" 
          runat="server" 
          ControlToValidate="TextBox_ReportedDate" 
          ErrorMessage="Invalid date" 
          ValidationExpression="^^((0[1-9])|(1[0-2]))\/((0[1-9])|(1[0-9])|(2[0-9])|(3[0-1]))\/(\d{4})$" 
          Display="Dynamic" 
          SetFocusOnError="True" 
          Font-Bold="true" 
          ForeColor="red" /> 
         <ajaxToolkit:MaskedEditExtender ID="maskededitextender_ReportedDate" runat="server" TargetControlID="TextBox_ReportedDate" Mask="99/99/9999" MaskType="Date" AcceptNegative="None" /> 
        </div> 

これは比較的ばかな質問であれば、私は謝罪ので、私は、Webアプリケーションを構築するための非常に新しいです。私はこれを自分で理解するために、一般的なASP.NETコントロールには慣れていません。

ありがとうございました!

答えて

0

RadioButtonListのOnTextChangedプロパティを作成するメソッドの名前とAutoPostBackプロパティをtrueに設定します。 TextBoxのEnabledプロパティをfalseに設定します。次に、作成するメソッドで。 TextBoxを有効に設定します。

protected void EnableTextBox(object sender, EventArgs e) 
    { 
         TextBox_ReportedDate.Disabled = false;  } 

またはJavaScriptでこれを行うことができます。 PageLoad()メソッドでは、あなたが書くつもりjavascript関数へのRadioButtonListののonchangeプロパティを設定します。

RadioButtonList_ReportedToSupervisor.Add("onchange", "EnableTextBox('" + TextBox_ReportedDate.ClientID + "');"); 

その後、あなたのaspxページにこのJavaScript関数を追加します。

<script language="javascript" type="text/javascript"> 
function EnableTextBox(RBLID) 
{ 
    var textbox = document.getElementById(RBLID); 
    textbox.disabled = false; 
} 

0

これを試してください。

$('#RadioButtonList_ReportedToSupervisor input').change(function() { 
var selectedvalue = $(this).val(); 
if (selectedvalue === "1") 
{ 
    $("#TextBox_ReportedDate").attr('disabled', 'disabled'); 

} 
else if (selectedvalue === "0") { 
    $("#TextBox_ReportedDate").removeAttr('disabled'); 
} 
}); 
+0

それは動作しますが、あなたはそれを有効化/無効化するのではなく、/テキストボックスを隠す(参照:http://stackoverflow.com/questions/ 1414365/disable-enable-an-with-jquery)。 – ConnorsFan

0

これを試してみてください。

$("input[name=toggle]").on('click', function() { var checked = $("input[name=toggle]").prop('checked'); 
 
console.log(checked); 
 
    if(checked) { $("#yourbtnId").show(); } 
 
    else { $("#yourbtnId").hide(); } 
 
               });
<input type="radio" name="toggle" value="1">Toggle

関連する問題