jquery验证插件

时间:2009-12-05 00:57:02

标签: php jquery validation forms

有人使用这个jquery插件进行表单验证吗?

http://docs.jquery.com/Plugins/Validation

我无法弄清楚如何使用它。它没有在文档中说明如何命名html表单元素以使其与validate()方法一起使用。

和问题nr 2,服务器端使用什么php类验证?

编辑:为什么这不起作用:

$("#register_box_form").validate({
    rules: {
        name: {
            required: true,
            minlength: 3
        }

        email: {
            required: true,
            minlength: 3,
            email: true
        }
    }
});

2 个答案:

答案 0 :(得分:1)

<input type="text" id="email" name="email" class="required email" />,在此代码中,类属性“required”和“email”的值与在文档就绪函数中的validate方法中定义的规则相同。这意味着class="required email"等于,

email: {
          required: true,
          email: true
        }

在上面的例子中。 我将告诉包含jquery验证所需的步骤是什么。 (你可能已经知道每一步) 使用jquery验证, 首先,您必须包含主jquery库js文件和jquery验证插件js文件。 然后在准备功能的文档上,您必须将验证功能绑定到所需的表单(如上面的帖子中所述)。 您可以在此验证函数中声明验证规则,也可以作为相关输入元素的class属性的值,如上所述。 有时我在输入元素的id属性和name属性使用不同的值时遇到问题。我不知道它的原因。因此,尝试为id和name属性赋予相同的值,并检查仍然无法验证。

您可以使用已包含的验证规则,例如电子邮件,网址,号码,数字等。 并且还有一个名为“remote”的规则,可用于发送ajax请求并在服务器端进行验证。 除此之外,您还可以根据需要定义自定义规则。 例如,我使用以下代码添加自定义验证规则,以确保密码具有正确的密码策略。

$.validator.addMethod("passwd_policy", function( value, element, param ) {
        return this.optional(element)
            || (value.length >= 8
                && /.[!,@,#,$,%,^,&,*,?,_,~]/.test(value) 
                && /[0-9]/.test(value)
                && /[a-z]/.test(value)
                && /[A-Z]/.test(value));
    },"Your password must be at least 8 characters long, <br/>contain at least one number, <br/>"
      +" at least one special character (!,@,#,$,%,^,&,*,?,_ ,~),<br/> at least one uppercase"
      +" character  <br/>and at least one lowercase character.");

您可以添加此自定义验证方法以验证字段与使用内置方法相同。就像

   "txt_passwd": {
        passwd_policy: true
    },

答案 1 :(得分:0)

您可以为表单中的字段指定规则。它们是键/值对,其中键是字段的名称。

E.g。包含 name email 字段的表单(来自http://docs.jquery.com/Plugins/Validation/validate#options的文档)

$(".selector").validate({
   rules: {
     // simple rule, converted to {required:true}
     name: "required",
     // compound rule
     email: {
       required: true,
       email: true
     }
   }
})

您可以将Zend Framework用于php部分。它有一些JQuery integration,但不适用于Validation插件(还有?)。

编辑:在您的示例中,规则文字的两个元素之间缺少逗号。

<html>
  <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        $("#register_box_form").validate( {
          rules: {
            name: {
              required: true,
              minlength: 3
            },
            email: {
              required: true,
              email: true
            }
          }
        });
      });
    </script>
  </head>
  <body>
    <form method="post" action="?" id="register_box_form">
      <div>
        <input type="text" name="name" /><br />  
        <input type="text" name="email" /><br />
        <input type="submit" />
      </div>
    </form>
  </body>
</html>