我正在使用jQuery验证插件来验证我的表单,但它似乎忽略了具有占位符文本的必填字段。
如何解决?
要在我使用此jQuery插件的所有浏览器中显示占位符 - http://formalize.me/
要验证我的表单,我正在使用此代码:
$("#userRegistration").validate({
errorLabelContainer: "#messageBox",
wrapper: "li",
rules: {
password: "required",
password_again: {
equalTo: "#password"
}
}
});
答案 0 :(得分:2)
您可以将此语句绑定到提交事件。通过jQuery验证,或手动。 (伪代码,您需要添加您的值)。
if(element.val() == placeholderText){
element.val('');
}
答案 1 :(得分:0)
这是未经测试的,但您可以尝试将所需的验证程序更改为以下内容:
password: {
required: function(element) {
return $(element).val() != $(element).attr("placeholder");
}
}
如果这不是很准确,它应该指向正确的方向。我引用了链接:http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression
答案 2 :(得分:0)
我在使用不同的插件时遇到了同样的问题,simpleWatermark。但是为了解决这个问题,我在网上找到了一个解决方案Watermark plugin for jQuery。
问题在于jquery链接事件。解决方案是在附加验证之前设置代码以附加水印。
希望这会对其他人有所帮助。
答案 3 :(得分:-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};}}