2010-07-15 16 views
2

如果我的页面的验证器更改其状态,我想在jquery中触发一个事件。从asp.net的验证器到状态变化的jquery获取一个事件

这是我用例:

  1. 在Adressform的验证所有被隐藏。
  2. 如果我提交表单,获得显示。
  3. 现在我想要一个jQuery函数,它呈现所有行(不是输入字段,但他们的父母)与红色边框(意味着添加一个CSS类)
  4. 如果我现在更改字段和验证程序隐藏我也想隐藏围绕输入的父边境

我不希望有一个计时器检查每隔100ms显示的验证程序(这将很好地工作),但我想只听的显示/隐藏事件的验证器

任何想法,我怎么可以添加一个侦听器到一个验证器的变化事件?

问候 克里斯托夫

回答

1

这里是如何从JavaScript中调用.NET验证:
Manually calling ASP.NET Validation with JavaScript

你可以结合上面用jQuery事件或jQuery Validation

注意:这个解决方案是如果你绑定到.NET验证器,否则只要使用jQuery验证作为戴夫提到。

+0

因为我想保持asp.net验证正常工作,所以我使用了链接的方法(向按钮单击事件添加函数,调用Page_ClientValidate并检查页面上的验证器) 谢谢你的提示。 – Christoph 2010-07-22 10:27:21

0

你有没有进去看了标准jQuery validator plugin?我非常确定它的验证器有事件,你可以用你描述的方式进入。

+0

我想从asp.net验证器到jquery的事件,而不是其他方向。 – Christoph 2010-07-22 10:27:57

0

对不起回答这个老问题,但我做了一篇关于modifying the default javacscript evaluation function of the ASP.NET validators的博客文章。基本上它归结为:

for (var i = 0; i < window.Page_Validators.length; i++) { 
    // Create a new property and assign the original evaluation function to it 
    window.Page_Validators[i].baseEvaluationFunction = window.Page_Validators[i].evaluationfunction; 

    // Set our own validation function 
    window.Page_Validators[i].evaluationfunction = evaluateField; 
} 

接下来,在'evaluateField'函数中,编写代码来设置css。

function evaluateField (validator) { 
    // Run the original validation function 
    var isvalid = validator.baseEvaluationFunction(validator); 

    // Handle the result 
    if (isvalid) { 
     clearError(validator); 
    } else { 
     setError(validator); 
    } 

    // Return result 
    return isvalid; 
} 

在setError和clearError函数中,您可以使用jquery来查找父行并将css应用于它。希望这可以帮助!