您当前的位置: 首页 » asp.net编程学习
» ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证
ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证
在 ASP.NET MVC 中启用 Unobtrusive JavaScript 功能,可以在运行时由服务器端根据Model中设置的验证规则,自动生成客户端验证js代码(结合jquery.validate)。这很好地解决了表单验证时一次代码,两次验证(客户端+服务器端)的问题。
默认情况下,jquery.validate.unobtrusive只在点击表单提交按钮时才触发验证,验证出错时,光标移入输入框不会清除错误提示信息(jquery.validate也一样,unobtrusive只是jquery.validate的一个扩展)。
而我们的需求是,只要光标移出输入框(onfocusout)就触发验证,光标移入输入框(onfocusin)时清除错误信息。
解决方法是简单的,找到解决方法的过程是曲折的。
jquery.validate对这个需求并没有提供很好的支持,需要研究它的代码,接管onfocusout与onfocusin的事件处理,并屏蔽onkeyup的事件处理。最终解决问题的代码如下:
针对jquery.validate.unobtrusive:
$.validator.setDefaults({
//光标移出时
onfocusout: function (element) {
this.element(element);
},
//光标移入时
onfocusin: function (element, event) {
//找到显示错误提示的标签并移除,针对jquery.validate.unobtrusive
var errorElement = $(element).next('span.field-validation-error');
if (errorElement) {
errorElement.children().remove();
}
},
onkeyup: function (element, event) {
}
});
//光标移出时
onfocusout: function (element) {
this.element(element);
},
//光标移入时
onfocusin: function (element, event) {
//找到显示错误提示的标签并移除,针对jquery.validate.unobtrusive
var errorElement = $(element).next('span.field-validation-error');
if (errorElement) {
errorElement.children().remove();
}
},
onkeyup: function (element, event) {
}
});
将这段代码加到jquery.validate.unobtrusive.js
上一篇:没有文章了
名字:
全部评论:
loading...
申明:本站部分文章来自网络,由于各种原因对文章的来源无从考究,如果您是“
ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证
”的原作者,若侵犯您的版权,请与我联系!联系方法:email:ahuinan@21cn.com QQ:106494262
文章档案
- 作者:dudu
- 来源:博客园
- 日期:2015/2/27 23:37:00
- 点击:loading...
网友投票(您觉得这篇文章怎样?)
请稍侯......
