Автоматически выбирать элемент в RadioButtonList после нажатия TextBox
В настоящее время у меня есть страница с двумя переключателями из списка RadioButtonList, за которыми следуют два текстовых поля:
<asp:RadioButtonList ID="radioButtonList1" runat="server">
<asp:ListItem Value="Option1">Option1</asp:ListItem>
<asp:ListItem Value="Option2">Option2</asp:ListItem>
</asp:RadioButtonList>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
Есть ли простой способ, как я могу сделать первый элемент списка RadioButtonList выбран после нажатия на первый TextBox? Это было бы более удобным для пользователя, так как обычно забывают проверить значение перед продолжением.
Заранее спасибо.
2 ответа
Решение
После дня исследований я нашел ответ сам. В коде внутри функции Page_Load я поместил эту строку кода:
TextBox1.Attributes.Add("OnClick", "document.getElementById('" + radioButtonList1.ClientID + "_0').checked=true;");
Я почти уверен, что есть лучший способ, но сейчас, похоже, он работает просто отлично.
Вы можете сделать это с помощью jQuery.
Ваш HTML выглядит примерно так:
<input id="ctl00_ContentPlaceHolder1_radioButtonList1_0" type="radio" name="ctl00$ContentPlaceHolder1$radioButtonList1" value="Option1">
<label for="ctl00_ContentPlaceHolder1_radioButtonList1_0">Option1</label>
<input id="ctl00_ContentPlaceHolder1_radioButtonList1_1" type="radio" name="ctl00$ContentPlaceHolder1$radioButtonList1" value="Option2">
<label for="ctl00_ContentPlaceHolder1_radioButtonList1_1">Option2</label>
<input name="ctl00$ContentPlaceHolder1$TextBox1" type="text" id="ctl00_ContentPlaceHolder1_TextBox1">
<input name="ctl00$ContentPlaceHolder1$TextBox2" type="text" id="ctl00_ContentPlaceHolder1_TextBox2">
JQuery:
$('#ctl00_ContentPlaceHolder1_TextBox1').focus(function() {
$('#ctl00_ContentPlaceHolder1_radioButtonList1_0').prop("checked", true);
});
https://jsfiddle.net/1dqzwtnh/
Или просто добавь Selected="True"
к вашему первому варианту в вашем aspx.