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

时间:2008-10-02 02:38:07

标签: asp.net javascript

有没有办法在触发客户端ASP.NET验证器(RequiredFieldValidatorRangeValidator等)时运行一些自定义Javascript?

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

3 个答案:

答案 0 :(得分:2)

有关我如何设法扩展ASP.Net客户端验证的信息,请参阅this commentOthers已设法使用服务器端技术扩展它。

答案 1 :(得分:0)

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

  1. 创建将控制ID映射到可见性状态的全局JS数据结构。
  2. 在此数据结构中注册验证器的客户端ID(或其他任何内容)。
  3. 每250毫秒,循环遍历全局数据结构,并将缓存的visiblity状态与元素的当前状态进行比较。如果状态不同,请更新缓存并运行自定义调整大小脚本。
  4. 这在很多方面都是丑陋的,它只是我特定场景的解决方案,而不是我们想要将任意代码搭载到验证器的显示/隐藏的抽象情况。我想要一个更好的建议!

答案 2 :(得分:0)

我不确定你的问题是否合适但是这里...你可以添加自定义验证器(或者可以处理onblur事件),在你的javascript自定义验证中,你可以调用Page_ClientValidate()并检查Page_IsValid为了错误。类似下面的代码:

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

HTH,