[英]Better way to handle client-side validation with placeholder workaround
啊哈! 我应该更好地阅读第二个链接 。 一个人建议更改jquery.validate.js来检查元素的占位符属性。 但是我认为这是一个不好的解决方案,因为升级jquery.validate.js可能会覆盖它。
但是,我发现我可以在脚本中覆盖validator方法。 所以我写了这个看起来很有效。 基本上,我复制了该方法,但添加了以下指示的行。
在我自己的验证js中,我添加了替换检查以查看该元素是否具有占位符属性,以及它是否等于占位符文本:
$.validator.addMethod(
'required',
function(value, element, param) {
// check if dependency is met
if ( !this.depend(param, element) )
return "dependency-mismatch";
switch( element.nodeName.toLowerCase() ) {
case 'select':
// could be an array for select-multiple or a string, both are fine this way
var val = $(element).val();
return val && val.length > 0;
case 'input':
if ( this.checkable(element) )
return this.getLength(value, element) > 0;
default:
// REPLACED THIS:
//return $.trim(value).length > 0;
// WITH THIS:
return ($.trim(value).length > 0) && (value != element.getAttribute('placeholder'));
}
}, '');
它似乎起作用。 并运行脚本调试,我可以看到它代替了“必需”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.