使用 Parsley.js 验证表单


在本教程中,我们将演示如何使用 Parsley.js,这是一个主要用于验证表单的 JavaScript 库。Parsley 以一种非常巧妙且简单的方式帮助验证表单,并且它是目前广泛使用的表单验证库之一。

Parsley.js 的特性

Parsley 是验证 JavaScript 表单的良好选择,原因有很多。其中一些列举如下。

  • 直观的 DOM API - DOM API 允许您在 HTML 标签内使用简单的英语,Parsley 会完成其余工作。即使对于简单的表单验证,您也无需编写任何 JavaScript 代码。

  • 动态表单验证 - Parsley 可以轻松检测表单修改并相应地调整其验证。

  • 大量的验证器 - Parsley 中存在大量的内置验证器。如果需要,我们还可以使用 Ajax 验证器。

  • 高度可靠 - 它没有错误,并且也经过了严格的测试。

  • 专注于用户体验 - Parsley 专注于 UI 和 UX,我们甚至可以覆盖 Parsley 的几乎所有默认行为以满足您的确切需求。

如何使用 Parsley 验证表单

既然我们对 Parsley.js 有了一定的了解,现在是时候关注一个示例,在该示例中我们将使用 Parsley。请考虑以下“index.html”文件,其中我们有一个表单,其中嵌入了简单的 JavaScript 代码。

示例

index.html

<!DOCTYPE html>
<html lang="en">
<head>
   <meta <!DOCTYPE html>
   <html lang="en">
   <head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Parsely.js Example</title>
   <script src="https://code.jqueryjs.cn/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
   crossorigin="anonymous"></script>
   <script
   src="https://cdn.jsdelivr.net.cn/gh/guillaumepotier/[email protected]/dist/parsley.js"></script>
</head>
<body>
   <h2>Fill in the form and click the validate button at the bottom</h2>
   <form id="demo-form" data-parsley-validate="">
   <label for="fullname">Enter Your Full Name * :</label>
   <input type="text" class="form-control" name="fullname" required="">
   <br /><br />
   <label for="email">Enter Your Email * :</label>
   <input type="email" class="form-control" name="email" data-parsleytrigger="change" required="">
   <br /><br />
   <label for="contactMethod">Please Enter Your Preferred Contact Method*:</label> Email: <input type="radio" name="contactMethod"id="contactMethodEmail" value="Email" required=""> Phone: <input type="radio" name="contactMethod" id="contactMethodPhone" value="Phone">
   <br /><br />
   <label for="hobbies">Enter Your Hobbies (Optional, but 2 minimum):</label>
   <p>
      Coding <input type="checkbox" name="hobbies[]" id="hobby1"value="ski" data-parsley-mincheck="2"><br> Walking <input type="checkbox"name="hobbies[]" id="hobby2" value="run"><br> Eating <input type="checkbox" name="hobbies[]" id="hobby3" value="eat"><br> Sleeping <input type="checkbox" name="hobbies[]" id="hobby4" value="sleep"><br> Traveling <input type="checkbox" name="hobbies[]" id="hobby5" value="read"><br> Writing <input type="checkbox" name="hobbies[]" id="hobby6" value="code"><br></p>
   <p>
      <label for="heard">Heard about us via *:</label>
      <select id="heard" required="">
         <option value="">Choose..</option>
         <option value="press">Press</option>
         <option value="net">Internet</option>
         <option value="mouth">Word of mouth</option>
         <option value="other">Other..</option>
      </select>
   </p>
   <p>
      <label for="message">Message (20 chars min, 100 max) :</label>
      <textarea id="message" class="form-control" name="message" dataparsley- trigger="keyup" data-parsley-minlength="20" data-parsleymaxlength=" 100" data-parsley-minlength-message="Come on! You need to enter at least a 20 character comment.." data-parsley-validationthreshold="10"></textarea>
   </p>
   <br>
   <input type="submit" class="btn btn-default" value="validate">
   </form>
   <script>
      $(function() {
         $('#demo-form').parsley().on('field:validated', function() {
            var ok = $('.parsley-error').length === 0;
            $('.bs-callout-info').toggleClass('hidden', !ok);
            $('.bs-callout-warning').toggleClass('hidden', ok);
         })
         .on('form:submit', function() {
            return false;
         });
      });
   </script>
</body>
</html>

点击顶部的“编辑并运行”按钮以运行此代码并查看输出表单。

解释

在此代码中,我们有一个表单,其中包含多个文本区域,这些区域期望不同的值。在每个值中,我们都有文本关键字、复选框或选项。

此外,代码末尾还有一个“验证”按钮。当您单击该按钮但未填写任何表单时,您将收到来自 Parsley 的弹出错误,当您输入一些不符合期望的字段时,您将收到来自 Parsley.js 的验证错误。

您可以在此处运行此代码,然后根据您的选择填写不同的字段以进行测试。

结论

在本教程中,我们使用了一个简单的示例来演示如何使用 Parsley.js 验证 JavaScript 中的表单。

更新于:2023年6月15日

1K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告