【问题标题】:ASP.NET CustomValidator not firing the eventASP.NET CustomValidator 未触发事件
【发布时间】:2023-03-05 21:11:01
【问题描述】:

我有一个带有下拉列表 (Telerik RadComboBox) 控件的页面要验证。

我放了一个 CustomValidator 来验证用户是否从列表中选择了一些东西。 然后有一个LinkBut​​ton来提交选择。

这是自定义验证器:

<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ClientValidationFunction="validateCombo" ValidateEmptyText="true"
ErrorMessage="You must select an item with even value"
ValidationGroup="defGroup">

这是链接按钮:

<asp:LinkButton ID="LnkInsertOrder" runat="server" Text="Inserisci Ordine" OnClick="LnkInsertOrder_Click" CausesValidation="true" ValidationGroup="defGroup" CssClass="btn btn-lg btn-info"> </asp:LinkButton>

这是我用于测试的客户端函数:

function validateCombo(source, args) {
            alert('validateCombo'); //is never shown!
            args.IsValid = false;   //fake validation...
}

validateCombo 从未被调用,因为我从未看到警报,即使我尝试从 js 控制台手动调用 .net 框架函数 Page_ClientValidate("defGroup"),它总是返回true,并且不显示警报。

当我按下链接按钮时,它会执行回发,并且 Page.isValid 属性为 true。

如果 defGroup 验证组的所有验证器都无效,我会尝试在用户按下链接按钮时停止回发。

【问题讨论】:

  • 它在这里工作。页面上的其他地方可能存在 JavaScript 错误。如果存在,则验证器不会阻止 PostBack。检查您的控制台。
  • 已经检查过了,没有错误!因此,如果它对您有效,则意味着我发布的代码是正确的,它应该以这种方式工作...这是 3 小时我被困在上面而没有看到光线
  • 删除浏览器缓存?
  • 在验证发生的同时回发?
  • @Antoine 完成,没有任何改变。当我单击 LinkBut​​ton 时,它会立即触发回发,验证似乎被忽略了。但是,为什么即使我从控制台手动调用页面验证,它也会完全忽略 CustomValidator??!

标签: javascript c# asp.net telerik customvalidator


【解决方案1】:

您缺少 CustomValidator 中缺少“ControlToValidate”属性添加该属性,或者您可以在 web.config 文件中添加一个关键设置以使其正常工作。

【讨论】:

    【解决方案2】:

    发现客户端上的 Page_Validators 列表也是空的(它应该包含所有 asp.net 验证器),它引导我找到“解决方案”:.net 4.5 有某种“不兼容”,当你把一个 ScriptManager 并且您还使用 jQuery >1.9... 或者我必须使用 Global.asax 中的 ScriptResourceMapping 添加 js 库

    顺便说一句,要修复它,只需使用旧的验证样式在 web.config 中添加一个关键设置:

    <appSettings>
     <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
    </appSettings>
    

    这对我来说听起来很疯狂,但是当我添加这条线时,一切都开始工作了

    【讨论】:

      【解决方案3】:

      尝试在 CustomValidator 中添加 ControlToValidate:

      【讨论】:

      • ControlToValidate 不需要 CustomValidator 工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 2010-09-09
      • 2012-05-06
      • 2013-04-30
      相关资源
      最近更新 更多