2009-12-05 176 views
0

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

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

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

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

编辑:为什么犯规这项工作:

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

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

?? ??你真的阅读过所有的文档,并在插件页面http://jquery.bassistance.de/validate/demo/尝试了演示(+源代码),并在页面末尾尝试了所有这些演示。我甚至不明白“如何命名表单元素”的意思,他们不需要任何特殊的名称。看看这些演示,当你尝试了几件事情时,回来更具体的问题。你如何做你的服务器端取决于你。这与jQuery – jitter 2009-12-05 01:05:35

+0

有什么关系,显然我必须为我的表单元素添加一些预定义的id值和类值。 这将使它与插件一起工作,它会自动验证电子邮件字段。但我通过查看示例代码来了解这一点。还有什么其他的“元标签”,我必须使用它来使它与密码,手机领域等工作,这是什么文件? – 2009-12-05 01:09:33

回答

1

<input type="text" id="email" name="email" class="required email" />,在该代码中,值类属性“必要”和“电子邮件”充当相同规则验证方法在文件准备功能限定。这意味着class="required email"等于,

email: { 
      required: true, 
      email: true 
     } 

在上例中。 我会告诉包含jquery验证所需的步骤。 (你可能已经知道每一步) 对于使用jquery validtion, 首先你必须包含主要的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 
    }, 
+0

感谢您的回答。该文档不太清楚如何在复合规则列表中使用自定义规则方法,并完全清除它。 – Steven 2010-11-10 03:02:33

0

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

E.g.与领域和(在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,虽然不适用于验证插件(尚未?)。

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

<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> 
+0

我不使用zend框架。是否有任何独立的PHP验证类,我可以下载和使用验证与此jQuery插件相同的方式? 这是最好的jQuery插件吗? – 2009-12-05 01:18:51

+0

您不必使用整个框架将表单部件提供给您。但也许http://docs.php.net/filter是你的东西。 – VolkerK 2009-12-05 02:24:34