【发布时间】:2011-01-03 16:02:59
【问题描述】:
我有一个自定义字段验证器,它会触发一些客户端代码来验证文本框的值。如果该值无效,我想在自定义验证器中显示一条消息。我可以将值分配给验证器,但是当它加载到页面上时,它设置为可见性 = 隐藏或显示 = 无。我尝试将这两个属性都设置为在客户端和验证器中可见。
客户端:
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>
我怎样才能强制它可见?
【问题讨论】:
-
当您尝试发布无效值时会出现该消息。如果启用了 javascript,它将发生在客户端。
-
你确定你的GetHauler方法被执行了吗?尝试在函数中设置一些警报以进行调试并检查发生了什么。
标签: asp.net jquery validation