我有一个自定义字段验证器,它会触发一些客户端代码来验证文本框的值。如果该值无效,我想在自定义验证器中显示一条消息。我可以将值分配给验证器,但是当它加载到页面上时,它被设置为visibility = hide或display = none。我尝试将这两个属性设置为在客户端和验证器中可见。
客户端:
if (data.d == null) {
sender.errormessage = $('#<%= txtHaulerNumber.ClientID %>').val() + " is not a valid Hauler Number.";
sender.innerHTML = $('#<%= txtHaulerNumber.ClientID %>').val() + " is not a valid Hauler Number.";
sender.text = $('#<%= txtHaulerNumber.ClientID %>').val() + " is not a valid Hauler Number.";
$('#<%= cfvHaulerNumber.ClientID %>').visible = true;
args.IsValid = false;
$('#<%= txtHaulerNumber.ClientID %>').focus();
}
ASP 验证器
<asp:CustomValidator ID="cfvHaulerNumber" runat="server" ControlToValidate="txtHaulerNumber"
ErrorMessage="" onservervalidate="cfvHaulerNumber_ServerValidate"
ValidateEmptyText="true" ClientValidationFunction = "GetHauler" EnableClientScript = "true"
Visible = "true" Display = "Static"></asp:CustomValidator>
更新: 我确信该方法正在运行,因为它重新格式化了我在文本框中输入的文本。当我打开 Firebug 并查看 HTML 时,我可以发现错误消息已分配给验证器,但某些东西强制它被隐藏。
<span style="color: Red; visibility: hidden;" id="ctl00_ContentPlaceHolder1_cfvHaulerNumber"></span>
如何强制其可见?
最佳答案
我进行了一些测试,似乎 CustomValidator 无法在 FireFox 中与 ASP.NET 4.0 一起工作。它在 IE 中运行良好。它在 FF 和 .NET 2.0 中运行良好。
我做了一些搜索,似乎这是 1.1 验证器的问题,在 2.0 中已解决。想知道 4.0 中是否还需要一些其他设置。
关于asp.net - 使用客户端代码设置并显示自定义验证的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586015/