我有一个绑定到数据库的DropDownList。我还手动添加一个项目“(other)”
当用户选择“(other)”时,JQuery会触发并.Show()
隐藏<asp:TextBox>
用户必须输入的内容。
我正在尝试验证此TextBox。当然因为我只是使用客户端隐藏它,所以我不能使用RequiredFieldValidator + RegularExpressionValidator,所以我尝试了一个我不太熟悉的CustomValidator:
protected void validatorOther(object sender, ServerValidateEventArgs e)
{
if (dropdownVisitorType.SelectedItem.ToString() == "(other)")
{
e.IsValid = (textboxOtherVisitorType.Text != "");
}
}
protected void buttonRegister_Click(object sender, EventArgs e)
{
//a whole bunch of code here...
}
然后从我的aspx
<asp:CustomValidator runat="server" id="validatorOtherVisitorType" ValidateEmptyText="true" onservervalidate="validatorOther" errormessage="*" />
当我尝试调试时,似乎e.IsValid
将成功返回false
。但是,我的网页似乎只是忽略它并继续进行,使验证器无用。我做错了什么?
答案 0 :(得分:3)
您需要在注册按钮点击时强制验证:
this.Page.Validate();
if (this.Page.IsValid)
{
// your registration logic.
}