每当触发客户端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客户端验证的信息,请参见此评论。其他人已经设法使用服务器端技术对其进行了扩展。