【问题标题】:jQuery validation ignores placeholder!jQuery 验证忽略占位符!
【发布时间】:2011-07-09 20:15:12
【问题描述】:
我正在使用 jQuery 验证插件来验证我的表单,但它似乎忽略了具有占位符文本的必填字段。
如何解决?
要在所有浏览器中显示占位符,我正在使用这个 jQuery 插件 - http://formalize.me/
为了验证我的表单,我使用了这段代码:
$("#userRegistration").validate({
errorLabelContainer: "#messageBox",
wrapper: "li",
rules: {
password: "required",
password_again: {
equalTo: "#password"
}
}
});
【问题讨论】:
标签:
jquery
validation
placeholder
【解决方案1】:
在 validate.js 中找到如下函数
必需:函数(a,b,d)
然后将整个函数替换为以下内容:
required:function(a,b,d){if(!this.depend(d,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case "select":return(a=c(b).val())&&a.length>0;case "input":if(this.checkable(b))return this.getLength(a,b)>0; /*default:return c.trim(a).length>0*/ default: if(typeof $.trim($(b).attr("placeholder")) != 'undefined') { return a != $.trim($(b).data("placeholder"))} else {return c.trim(a).length>0};}}
【解决方案2】:
我在使用不同的插件 simpleWatermark 时遇到了同样的问题。但是为了这个问题上网,我在这个页面上找到了解决方案Watermark plugin for jQuery。
问题在于事件的 jquery 链接。解决方案是在附加验证之前设置代码以附加水印。
希望这对其他人有所帮助。
【解决方案3】:
您可以将此语句绑定到您的提交事件。要么通过 jQuery 验证,要么手动进行。 (伪代码,您需要添加您的值)。
if(element.val() == placeholderText){
element.val('');
}