ASP.NET中的控件
<asp:TextBox ID="txtEnd" runat="server" placeholder="12:59"></asp:TextBox>
<asp:RadioButtonList ID="rblTime2" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
<asp:ListItem>AM</asp:ListItem>
<asp:ListItem>PM</asp:ListItem>
</asp:RadioButtonList>CustomValidator
<asp:CustomValidator ID="ValidateStartTime" ControlToValidate="txtEnd" OnServerValidate="ValidateStartTimeFun" runat="server" ErrorMessage="*required"></asp:CustomValidator>CodeBehind
protected void ValidateStartTimeFun(object source, ServerValidateEventArgs args)
{
try
{ if (txtStart.Text != "" && rblTime.SelectedValue != null )
{ args.IsValid = true; }}
catch (Exception ex)
{ args.IsValid = false; }
}如果我把整个CodeBehind改成这样,它甚至不会给我一个*required;
protected void ValidateStartTimeFun(object source, ServerValidateEventArgs args)
{
args.isValid = false;
}发布于 2013-01-03 23:46:24
如果您正在验证空输入,如果您设置了ControlToValidate属性并且没有将ValidateEmptyText属性设置为true,则不会触发自定义验证器,否则框架会要求您使用RequiredFieldValidator。
发布于 2013-01-03 23:48:11
如果设置了ControlToValidate属性,那么如果用户没有输入/选择任何内容,CustomValidator就不会触发。但是如果你省略了它,它将在表单提交时触发。
所以把它去掉。
<asp:CustomValidator ID="ValidateEndTime"
OnServerValidate="ValidateEndTimeFun"
runat="server" ErrorMessage="*required">
</asp:CustomValidator>因为你要验证多个控件,所以我不会这么做,否则你也可以像gfyans提到的那样将ValidateEmptyText属性设置为true。
发布于 2013-01-03 23:51:55
我认为ValidationGroup元素丢失了。
您应该将相同的值ValidationGroup到验证器和必须检查该值的按钮(或使用页面的Validate方法以编程方式检查它)。
https://stackoverflow.com/questions/14142174
复制相似问题