我有几个需要创建的场景:
1)如果下拉列表具有特定值,则将特定文本框设为必填字段。
2)如果特定文本框有数据,则需要另一个文本框(如果填写了地址字段,则需要城市,州和邮政编码)
我有代码可以从一对看起来正确的 CustomValidators 中调用:
<asp:CustomValidator ID="cvtxt_pat_id" runat="server"
OnServerValidate="txt_pat_idValidate" ControlToValidate="txt_pat_id"
ErrorMessage="Text must be 8 or more characters." Display="Dynamic"/>
protected void txt_pat_idValidate(object sender, ServerValidateEventArgs e)
{
if (ddl_addl_pat_info.SelectedValue.ToString() == "2")
{
e.IsValid = (e.Value.Length > 1);
}
else
{
e.IsValid = true;
}
}
<asp:CustomValidator ID="cvtxt_pat_id" runat="server"
OnServerValidate="addresspartsValidate" ControlToValidate="txt_city"
ErrorMessage="Complete address must be entered." Display="Dynamic"/>
protected void addresspartsValidate(object sender, ServerValidateEventArgs e)
{
if (txt_pat_address.Text.Length > 1)
{
e.IsValid = (e.Value.Length > 1);
}
else
{
e.IsValid = true;
}
}
但据我了解,如果我正在测试的文本框为空,则该框永远不会验证,因此如果它们为空,则不会触发,这使得检查必填字段变得困难。所以……想法?
此外,关于我是否需要同时拥有客户端和服务器版本的测试,我得到了相互矛盾的故事。也许它在旧版本中是必需的,现在不是了吗?