从 asp.net 的验证器获取关于状态更改的事件到 jquery
Posted
技术标签:
【中文标题】从 asp.net 的验证器获取关于状态更改的事件到 jquery【英文标题】:Get a Event from asp.net's validators to jquery on status change 【发布时间】:2011-03-16 12:42:26 【问题描述】:如果我的页面的验证器改变了它们的状态,我希望在 jquery 中触发一个事件。
这是我的用例:
-
在 Adressform 中,所有验证器都是隐藏的。
如果我提交表单,则会显示。
现在我想触发一个 jQuery 函数,它用红色边框渲染所有行(不是输入字段,而是它们的父字段)(意味着添加一个 css 类)
如果我现在更改字段并隐藏验证器,我还想隐藏输入父级周围的边框
我不想让计时器每 100 毫秒检查一次显示的验证器(这将完美运行),但我只想收听验证器的显示/隐藏事件
任何想法,我如何向验证器的更改事件添加侦听器?
问候 克里斯托夫
【问题讨论】:
【参考方案1】:以下是从 javascript 调用 .NET 验证器的方法:Manually calling ASP.NET Validation with JavaScript 您可以将上述内容与 jQuery 事件或 jQuery Validation 集成。
注意:此解决方案是如果您绑定到 .NET 验证器,否则只需使用 Dave 提到的 jQuery 验证。
【讨论】:
因为我想保持 asp.net 验证正常工作,所以我使用了您链接中的方法(向按钮单击事件添加功能,调用 Page_ClientValidate 并检查页面上的验证器)谢谢提示。【参考方案2】:您是否查看过标准 jQuery validator plugin?我很确定它的验证器有你可以按照你描述的方式挂钩的事件。
【讨论】:
我想要一个从 asp.net 验证器到 jquery 的事件,而不是另一个方向。【参考方案3】:很抱歉回答这个老问题,但我写了一篇关于 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 应用于它。希望这会有所帮助!
【讨论】:
以上是关于从 asp.net 的验证器获取关于状态更改的事件到 jquery的主要内容,如果未能解决你的问题,请参考以下文章
什么是在 asp.net 中返回验证器状态的内置 javascript 函数