I have a DropDownList bound to a DB. I also manually add to it an item “(other)”
When a user selects “(other)”, JQuery fires and .Show() a hidden <asp:TextBox> where the user must input something.
I am attempting to validate this TextBox. Of course since I’m just hiding it using client-side, I can’t use RequiredFieldValidator+RegularExpressionValidator so I tried a CustomValidator which I’m not very familiar with:
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...
}
And then from my aspx
<asp:CustomValidator runat="server" id="validatorOtherVisitorType" ValidateEmptyText="true" onservervalidate="validatorOther" errormessage="*" />
When I try to debug, it seems that e.IsValid will successfully return false. However, my webpage seems to just ignore it and proceed anyway, making the validator useless. What am I doing wrong?
You need to force validation on register button click: