asp.net CustomValidator服务器端不会停止我的程序?

时间:2012-01-26 09:47:15

标签: jquery asp.net customvalidator

我有一个绑定到数据库的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。但是,我的网页似乎只是忽略它并继续进行,使验证器无用。我做错了什么?

1 个答案:

答案 0 :(得分:3)

您需要在注册按钮点击时强制验证:

this.Page.Validate();
if (this.Page.IsValid)
{
// your registration logic.
}