2

我正在使用 jQuery 验证插件来验证我的表单,但它似乎忽略了具有占位符文本的必填字段。

如何解决?

要在所有浏览器中显示占位符,我正在使用这个 jQuery 插件 - http://formalize.me/

为了验证我的表格,我正在使用以下代码:

$("#userRegistration").validate({
errorLabelContainer: "#messageBox",
wrapper: "li",
rules: {
    password: "required",
    password_again: {
    equalTo: "#password"
    }
  }
});
4

4 回答 4

2

您可以将此语句绑定到您的提交事件。要么通过 jQuery 验证,要么手动进行。(伪代码,您需要添加您的值)。

if(element.val() == placeholderText){
              element.val('');
 } 
于 2011-05-10T17:09:55.210 回答
0

这是未经测试的,但您可以尝试将所需的验证器更改为以下内容:

password:  {
  required: function(element) {
    return $(element).val() != $(element).attr("placeholder");
  }
}

如果这不是很准确,它应该为您指明正确的方向。我引用了链接:http ://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression

于 2011-03-06T16:11:15.967 回答
0

我在使用不同的插件 simpleWatermark 时遇到了同样的问题。但是为了这个问题上网,我在这个页面上找到了一个解决方案Watermark plugin for jQuery

问题在于事件的 jquery 链接。解决方案是在附加验证之前设置代码以附加水印。

希望这对其他人有帮助。

于 2011-07-13T14:30:39.883 回答
-1

在需要的 validate.js 中找到以下函数 :function(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};}}
于 2014-05-15T06:56:26.970 回答