繁体   English   中英

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

[英]asp.net CustomValidator server-side does not stop my program?

我有一个绑定到数据库的DropDownList。 我还手动在其中添加了“(其他)”项

当用户选择“(其他)”时,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 但是,我的网页似乎只是忽略它并继续运行,从而使验证器无用。 我究竟做错了什么?

您需要在单击注册按钮时强制进行验证:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM