2011-07-26 57 views
0

我想找到一种方法来轻松地添加默认值,以形式使用jquery验证插件。我搜查了一下,没有发现任何有用的东西,最后一个类似的问题是一岁。 因此,再次询问,有没有简单的方法来添加默认值的形式,而不会搞乱jquery验证代码。 当然,当用户开始在字段内输入时,默认值应该消失。jquery验证和默认文本

编辑:我看到这个问题有点混乱,所以这里有更好的解释。我想添加默认文本形式,我想验证插件忽略该默认值。我知道我可以添加方法来检查值是否为默认值,但由于窗体非常大,我更喜欢其他解决方案。就像一些将默认文本置于输入字段之上的插件一样,如果表单被提交时未提交用户填充的字段,它似乎会将插件验证为空。

回答

1

如果你只是使用它作为吸引力,你可以只使用占位符属性,<input name="search" type="text" placeholder="Enter some keywords..." />

+0

这就是我需要的。谢谢,并感谢大家的答案。 – Milos911

+0

对于HTML5 +1。如果浏览器不支持它,它只是不显示。 – Jack

1
<input type="text" name="user" id="user" value="YOUR DEFUALT VALUE" /> 

$("#user").attr("value", "YOUR DEFAULT VALUE"); 

只需使用上面的代码中的DOM已准备就绪,它应该是罚款,我觉得。

0

扩展在前面的回答:

HTML:

<input type="text" name="user" id="user" value="YOUR DEFUALT VALUE" /> 

,你应该从表单字段不明确的默认值。

+0

我知道:)事情是,当提交表单时,jquery validate插件认为默认值是正确的价值,并允许提交表格。 – Milos911

+0

默认值应该是一个有效值。 – BumbleB2na

+0

忘记输入进入评论:)。我知道我可以编写自定义验证规则,但我认为必须有更简单的方法,因为我的表单非常庞大而且非常复杂。 – Milos911

1

如果您在谈论验证失败后看到的消息,那么您可以做这样的事情。如果您正在说文本框的默认值,请查看@Caimen的答案。

$("form").validate({ 
    rules: {FirstName: "required defaultCheck"}, 
    messages: { 
      FirstName: "First name is required" 
)}; 

即使您选择了您的答案,这可能会帮助某人。 如果您希望验证程序忽略默认文本,而这正是我认为您始终需要的默认文本,则可以执行此操作。

$.validator.addMethod(
      'defaultCheck', function (value, element) { 
       if (element.value == element.defaultValue) { 
        return false; 
       } 
       return true; 
    }); 
+0

+1在这里。我意识到,这是你应该用来处理默认值。为什么要清除默认值?您的默认值不应该是用户可能想要使用的有效值吗? – BumbleB2na

+0

嗯,我想要做一些类似于value =“写东西...”的东西,并且当用户开始输入时它会消失。我知道如何做到这一点,所以这不成问题。问题是,如果用户不输入任何内容,则验证插件认为“写入内容...”是有效值(并且是,但不应该是)。 – Milos911

0

这是我会怎么做:

<input name="firstName" value="First Name" defaultValue="First Name"> 

,然后在验证:

if(object.value != object.defaultValue) 
    // validation