特に、「wmi_cell_phone」と呼ばれるTextBoxと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に間違った方法でアクセスしています..