我有一个表单,其中包含一个名为“wmi_cell_phone”的文本框和一个 RadioButtonList“wmi_send_sms”。基本上,我需要创建一个验证器来检查所选单选的值是否为“Y”。如果是这种情况,那么它会检查 TextBox 值是否为空。如果它是空的,那么它应该通知用户输入一个值。
这是我的 .aspx 代码:
<asp:TextBox ID="wmi_cell_phone" runat="server" MaxLength="100" Width="200px"></asp:TextBox>
<asp:RadioButtonList ID="wmi_send_sms" RepeatDirection="Horizontal" runat="server" Width="140px" CssClass="radio"></asp:RadioButtonList>
和代码隐藏(VB):
wmi_send_sms.Items(0).Value = "Y"
wmi_send_sms.Items(1).Value = "N"
我的验证器
<asp:CustomValidator ID="val_wmi_send_sms" runat="server"
ClientValidationFunction="ValidateSMS"
Display= "Dynamic"
ErrorMessage="Please enter a valid phone number."> </asp:CustomValidator>
<script language="javascript" type="text/javascript">
function ValidateSMS(Source, args)
{
var smsRadio = document.getElementsByName('<%= wmi_send_sms.ClientID %>');
var cellphone = document.getElementById('<%= wmi_cell_phone.ClientID %>');
for (var x = 0; x < smsRadio.length; x ++)
{
if (smsRadio[x].checked)
{
if (smsRadio[x].value == "Y")
{
if (cellphone.value == "")
args.IsValid = false;
else
args.IsValid = true;
}
}
}
}
</script>
但它似乎不起作用..也许我以错误的方式访问 RadioButtonList..