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

时间:2020-03-06 15:00:27  来源:igfitidea点击:

每当触发客户端ASP.NET验证器(" RequiredFieldValidator"," RangeValidator"等)时,是否可以运行一些自定义Javascript?

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

解决方案

针对我的具体情况确定的最佳解决方案是:

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

这在很多方面都是很丑陋的,但这只是针对我的特定方案的解决方案,而不是抽象的情况,在抽象的情况下,我们希望将任意代码添加到验证器的显示/隐藏中。我希望有更好的建议!

我不确定问题是否正确,但是可以解决...我们可以添加自定义验证器(或者处理onblur事件),在javascript自定义验证中,可以调用Page_ClientValidate()并检查Page_IsValid是否有错误。类似于以下代码:

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

HTH,

有关如何设法扩展ASP.Net客户端验证的信息,请参见此评论。其他人已经设法使用服务器端技术对其进行了扩展。