[英]Detect when radio button is checked
我有一个代码背后的表单构建。
我要做的是检查何时选中单选按钮,以及何时检查其更改。
我有以下内容
RadioButton radio = new RadioButton() { ClientIDMode = System.Web.UI.ClientIDMode.Static, AutoPostBack=true, ID = "rbOther" + testEquipment.Id, GroupName = "grp" + testEquipment.Id, Checked = false };
radio.CheckedChanged += new EventHandler(radio_CheckedChanged);
testEquipment是存储某些数据的对象的实例。
tdBrandName.Controls.Add(new TextBox() { ClientIDMode = System.Web.UI.ClientIDMode.Static, ID = "txtBrandName" + testEquipment.Id, Text = serviceStationTestEquipment != null ? serviceStationTestEquipment.BrandName : string.Empty, Width = new Unit(300), Enabled = serviceStationTestEquipment != null ? serviceStationTestEquipment.Other : false });
tdBrandName.Controls.Add(new RequiredFieldValidator() { Display = ValidatorDisplay.Dynamic, ControlToValidate = "txtBrandName" + testEquipment.Id, Text = "Required field", ErrorMessage = "Test Equipment Tab: Field is required", CssClass = "validationerror", Enabled = serviceStationTestEquipment != null ? serviceStationTestEquipment.Other : false, ID = ID = "reqValidator" + testEquipment.Id });
然后我想在单击单选按钮时禁用文本框和requiredfieldvalidator。 有三个即。 无,默认,其他
选择其他时,必须启用文本框以及必填字段验证程序。
void radio_CheckedChanged(object sender, EventArgs e)
{
RadioButton check = sender as RadioButton;
if (check == null)
return;
string Id = check.ID.Replace("rbOther", "");
TextBox text = check.Parent.Parent.FindControl(string.Format("txtBrandName{0}", Id)) as TextBox;
text.Enabled = check.Checked;
RequiredFieldValidator validator = check.Parent.Parent.FindControl(string.Format("reqValidator{0}", Id)) as RequiredFieldValidator;
validator.Enabled = check.Checked;
}
如果你习惯使用jQuery,那么你可以试试这个:
<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script>
$(function () {
$("input[name$='grp']").click(function () {
var value = $(this).val();
id = value.replace("rbOther", "");
$("#txtBrandName" + id).attr("disabled", "disabled");
ValidatorEnable(document.getElementById("reqValidator" + id), false);
//Write your code HERE
});
});
</script>
以下是示例案例。 我在radibutton列表中有3个项目,并根据选择的值我希望在标签上显示一条消息。
<asp:RadioButtonList ID="rbtnType" runat="server" RepeatDirection="Vertical">
<asp:ListItem Value="C">Contract </asp:ListItem>
<asp:ListItem Value="I">Independent </asp:ListItem>
<asp:ListItem Value="O">OutSource </asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:Label ID="lblLaborType" runat="server" ></asp:Label>
<script type="text/javascript">
$(document).ready(function () {
$("#<%=rbtnType.ClientID%>").change(function () {
var rbvalue = $("input[@name=<%=rbtnType.ClientID%>]:radio:checked").val();
if (rbvalue == "C") {
$('#<%=lblLaborType.ClientID %>').html('Do this');
}
else if (rbvalue == "I") {
$('#<%=lblLaborType.ClientID %>').html('else this');
}
else if (rbvalue == "O") {
$('#<%=lblLaborType.ClientID %>').html('or else this');
}
});
}); </script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.