每当触发客户端ASP.NET验证器时,运行自定义Javascript

Run custom Javascript whenever a client-side ASP.NET validator is triggered?

本文关键字:运行 Javascript 自定义 验证 NET 客户端 ASP      更新时间:2023-09-26

无论何时触发客户端ASP.NET验证器(RequiredFieldValidatorRangeValidator等),都有办法运行一些自定义Javascript吗?

基本上,我有一个复杂的布局,每当显示或隐藏DOM元素时,我都需要运行一个自定义脚本。我正在寻找一种在显示验证器时自动运行此脚本的方法。(我使用带有Display="dynamic"的验证器)

请参阅此注释,了解我是如何扩展ASP.Net客户端验证的。其他人已经设法使用服务器端技术对其进行了扩展。

我为我的特定情况确定的最佳解决方案是:

  1. 创建一个全局JS数据结构,将控件ID映射到可见性状态
  2. 在这个数据结构中注册验证器的客户端ID(或者其他任何东西)
  3. 每隔250毫秒,循环遍历全局数据结构,并将缓存的可见性状态与元素的当前状态进行比较。如果状态不同,请更新缓存并运行自定义调整大小脚本

这在很多方面都很丑陋,而且它只是我的特定场景的解决方案,而不是我们想要将任意代码移植到验证器的显示/隐藏上的抽象情况。我希望有更好的建议!

我不确定你的问题是否答对了,但下面是。。。您可以添加一个自定义验证器(或者处理onblr事件),在javascript自定义验证中,您可以调用Page_ClientValidate()并检查Page_IsValid是否存在错误。类似下面的代码:

function customValidation()
{
    Page_ClientValidate();
    if(!Page_IsValid)
    { //run your resize script }
}

HTH、