JQuery表单验证规则语法

时间:2012-12-18 16:32:47

标签: jquery validation jquery-validate

我正在尝试使用规则/消息集进行jquery验证,但似乎无法使其正常工作。对JQuery不熟悉,如果这是一个基本问题,请道歉。我正在尝试使用document.forms [0]而不是表单ID。它适用于简单验证,其中字段具有class =“required”但如果我尝试引入规则则不行。任何帮助非常感谢。这是代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript" src="http://jzaefferer.github.com/jquery-        validation/jquery.validate.js"></script>
  <script>
  $(document).ready(function(){
    $(document.forms[0]).validate({
    rules: {
      cname: {
      required: true,
    }
    },
    messages: {
      cname: "Please enter a valid Name."
    },
  });
  });
  </script>

</head>
<body>


 <form class="cmxform" id="commentForm" method="get" action="">
 <fieldset>
   <legend>A simple comment form with submit validation and default messages</legend>
  <p>
     <label for="cname">Name</label>
     <em>*</em><input id="cname" name="name"/>
   </p>

   <p>
     <input class="submit" type="submit" value="Submit"/>
   </p>
 </fieldset>
 </form>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

我想我会回答这个问题,因为我的评论是正确的。

尝试将name属性也设为“cname”。验证器查找name属性。

答案 1 :(得分:2)

首先,您可以通过id#commentForm定位表单。其次,问题的根本原因是您通过input属性未正确定位id字段。但是,.validate()插件正在查找name属性,在您的情况下,该属性也恰好是"name"。我在下面的示例中更改了name属性的值,只是为了使其更清晰。

<强> jQuery的:

$(document).ready(function(){
    $('#commentForm').validate({
        rules: {
           username: {
               required: true
           }
        },
        messages: {
           username: "Please enter a valid Name."
        }
    });
});

<强> HTML:

<form class="cmxform" id="commentForm" method="get" action="">

    <input type="text" id="cname" name="username" />

    ....

<强> Working DEMO:

http://jsfiddle.net/egdEn/

See the online documentation for more info.