Bootstrap 表单验证formValidation 实现表单动态验证功能

下面将详细讲解 Bootstrap 表单验证 formValidation 实现表单动态验证功能的完整攻略。

什么是 Bootstrap 表单验证 formValidation

Bootstrap表单验证formValidation是一种基于jQuery的验证表单的插件。它是一个简单易用、灵活性强的工具,可以帮助开发者实现表单的动态验证功能。

formValidation可以对输入内容进行自定义验证,比如验证输入数据的长度、格式、是否符合正则表达式等,同时还可支持异步验证。

步骤

下面是利用Bootstrap 表单验证 formValidation实现表单动态验证功能的步骤:

  1. 在 HTML 文件中添加表单并引入Bootstrap表单验证formValidation的必要文件。
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Bootstrap 表单验证 formValidation 实现表单动态验证功能</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/formvalidation/0.6.1/css/formValidation.min.css">
  </head>
  <body>
    <div class="container">
      <form id="myForm" method="post" class="form-horizontal">
        <div class="form-group">
          <label class="col-md-3 control-label" for="firstName">First name</label>
          <div class="col-md-6">
            <input type="text" class="form-control" name="firstName" id="firstName" placeholder="Enter your first name">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="lastName">Last name</label>
          <div class="col-md-6">
            <input type="text" class="form-control" name="lastName" id="lastName" placeholder="Enter your last name">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="email">Email</label>
          <div class="col-md-6">
            <input type="text" class="form-control" name="email" id="email" placeholder="Enter your email address">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="password">Password</label>
          <div class="col-md-6">
            <input type="password" class="form-control" name="password" id="password" placeholder="Enter your password">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="password">Confirm Password</label>
          <div class="col-md-6">
            <input type="password" class="form-control" name="confirmPassword" id="confirmPassword" placeholder="Confirm your password">
          </div>
        </div>
        <div class="form-group">
          <div class="col-md-6 col-md-offset-3">
            <button type="submit" class="btn btn-primary btn-block">Sign up</button>
          </div>
        </div>
      </form>
    </div> 

    <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://cdn.staticfile.org/formvalidation/0.6.1/js/formValidation.min.js"></script>
    <script src="https://cdn.staticfile.org/formvalidation/0.6.1/js/framework/bootstrap.min.js"></script>
  </body>
</html>
  1. 给表单添加自定义验证
<form id="myForm" method="post" class="form-horizontal">
  <div class="form-group">
    <label class="col-md-3 control-label" for="firstName">First name</label>
    <div class="col-md-6">
      <input type="text" class="form-control" name="firstName" id="firstName" placeholder="Enter your first name">
    </div>
  </div>
  <div class="form-group">
    <label class="col-md-3 control-label" for="lastName">Last name</label>
    <div class="col-md-6">
      <input type="text" class="form-control" name="lastName" id="lastName" placeholder="Enter your last name">
    </div>
  </div>
  <div class="form-group">
    <label class="col-md-3 control-label" for="email">Email</label>
    <div class="col-md-6">
      <input type="text" class="form-control" name="email" id="email" placeholder="Enter your email address">
    </div>
  </div>
  <div class="form-group">
    <label class="col-md-3 control-label" for="password">Password</label>
    <div class="col-md-6">
      <input type="password" class="form-control" name="password" id="password" placeholder="Enter your password">
    </div>
  </div>
  <div class="form-group">
    <label class="col-md-3 control-label" for="password">Confirm Password</label>
    <div class="col-md-6">
      <input type="password" class="form-control" name="confirmPassword" id="confirmPassword" placeholder="Confirm your password">
    </div>
  </div>
  <div class="form-group">
    <div class="col-md-6 col-md-offset-3">
      <button type="submit" class="btn btn-primary btn-block">Sign up</button>
    </div>
  </div>
</form>
<script>
$('#myForm').formValidation({
    framework: 'bootstrap',
    icon: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh'
    },
    fields: {
        firstName: {
            validators: {
                notEmpty: {
                    message: 'The first name is required'
                },
                stringLength: {
                    min: 2,
                    max: 30,
                    message: 'The first name must be more than 2 and less than 30 characters long'
                },
                regexp: {
                    regexp: /^[a-zA-Z\s]+$/i,
                    message: 'The first name can only consist of alphabetical characters and spaces'
                }
            }
        },
        lastName: {
            validators: {
                notEmpty: {
                    message: 'The last name is required'
                },
                stringLength: {
                    min: 2,
                    max: 30,
                    message: 'The last name must be more than 2 and less than 30 characters long'
                },
                regexp: {
                    regexp: /^[a-zA-Z\s]+$/i,
                    message: 'The last name can only consist of alphabetical characters and spaces'
                }
            }
        },
        email: {
            validators: {
                notEmpty: {
                    message: 'The email address is required'
                },
                emailAddress: {
                    message: 'The input is not a valid email address'
                }
            }
        },
        password: {
            validators: {
                notEmpty: {
                    message: 'The password is required and can\'t be empty'
                },
                stringLength: {
                    min: 6,
                    message: 'The password must have at least 6 characters'
                }
            }
        },
        confirmPassword: {
            validators: {
                notEmpty: {
                    message: 'The confirm password is required and can\'t be empty'
                },
                identical: {
                    field: 'password',
                    message: 'The password and confirm password is not the same'
                }
            }
        }
    }
});
</script>

以上代码演示了自定义验证规则。它主要包括指定元素 fields 以及验证器 validators。通过设置不同的验证器,你可以很容易地自定义表单的验证规则。

  1. 进行提交

当用户单击"Sign Up"按钮提交表单时,自动执行表单的验证程序,验证表单的输入合法性。

完整的示例代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Bootstrap 表单验证 formValidation 实现表单动态验证功能</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/formvalidation/0.6.1/css/formValidation.min.css">
  </head>
  <body>
    <div class="container">
      <form id="myForm" method="post" class="form-horizontal">
        <div class="form-group">
          <label class="col-md-3 control-label" for="firstName">First name</label>
          <div class="col-md-6">
            <input type="text" class="form-control" name="firstName" id="firstName" placeholder="Enter your first name">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="lastName">Last name</label>
          <div class="col-md-6">
            <input type="text" class="form-control" name="lastName" id="lastName" placeholder="Enter your last name">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="email">Email</label>
          <div class="col-md-6">
            <input type="text" class="form-control" name="email" id="email" placeholder="Enter your email address">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="password">Password</label>
          <div class="col-md-6">
            <input type="password" class="form-control" name="password" id="password" placeholder="Enter your password">
          </div>
        </div>
        <div class="form-group">
          <label class="col-md-3 control-label" for="password">Confirm Password</label>
          <div class="col-md-6">
            <input type="password" class="form-control" name="confirmPassword" id="confirmPassword" placeholder="Confirm your password">
          </div>
        </div>
        <div class="form-group">
          <div class="col-md-6 col-md-offset-3">
            <button type="submit" class="btn btn-primary btn-block">Sign up</button>
          </div>
        </div>
      </form>
    </div> 

    <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://cdn.staticfile.org/formvalidation/0.6.1/js/formValidation.min.js"></script>
    <script src="https://cdn.staticfile.org/formvalidation/0.6.1/js/framework/bootstrap.min.js"></script>
    <script>
      $(document).ready(function() {
        $('#myForm').formValidation({
            framework: 'bootstrap',
            icon: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                firstName: {
                    validators: {
                        notEmpty: {
                            message: 'The first name is required'
                        },
                        stringLength: {
                            min: 2,
                            max: 30,
                            message: 'The first name must be more than 2 and less than 30 characters long'
                        },
                        regexp: {
                            regexp: /^[a-zA-Z\s]+$/i,
                            message: 'The first name can only consist of alphabetical characters and spaces'
                        }
                    }
                },
                lastName: {
                    validators: {
                        notEmpty: {
                            message: 'The last name is required'
                        },
                        stringLength: {
                            min: 2,
                            max: 30,
                            message: 'The last name must be more than 2 and less than 30 characters long'
                        },
                        regexp: {
                            regexp: /^[a-zA-Z\s]+$/i,
                            message: 'The last name can only consist of alphabetical characters and spaces'
                        }
                    }
                },
                email: {
                    validators: {
                        notEmpty: {
                            message: 'The email address is required'
                        },
                        emailAddress: {
                            message: 'The input is not a valid email address'
                        }
                    }
                },
                password: {
                    validators: {
                        notEmpty: {
                            message: 'The password is required and can\'t be empty'
                        },
                        stringLength: {
                            min: 6,
                            message: 'The password must have at least 6 characters'
                        }
                    }
                },
                confirmPassword: {
                    validators: {
                        notEmpty: {
                            message: 'The confirm password is required and can\'t be empty'
                        },
                        identical: {
                            field: 'password',
                            message: 'The password and confirm password is not the same'
                        }
                    }
                }
            }
        });
      });
    </script>
  </body>
</html>

示例

以下是两个用于表单验证的示例:

示例1: 对输入数据的长度限制进行验证

<div class="form-group">
  <label class="col-md-3 control-label" for="firstName">First name</label>
  <div class="col-md-6">
    <input type="text" class="form-control" name="firstName" id="firstName" placeholder="Enter your first name">
  </div>
</div>
firstName: {
    validators: {
        notEmpty: {
            message: 'The first name is required'
        },
        stringLength: {
            min: 2,
            max: 30,
            message: 'The first name must be more than 2 and less than 30 characters long'
        }
    }
}

在这个示例中,我们通过设置 minmax 属性,限制用户输入的 firstName 长度必须小于等于 30 个字符,大于等于 2 个字符。

示例2:对输入数据的格式限制进行验证

<div class="form-group">
  <label class="col-md-3 control-label" for="email">Email</label>
  <div class="col-md-6">
    <input type="text" class="form-control" name="email" id="email" placeholder="Enter your email address">
  </div>
</div>
email: {
    validators: {
        notEmpty: {
            message: 'The email address is required'
        },
        emailAddress: {
            message: 'The input is not a valid email address'
        }
    }
}

在这个示例中,我们通过设置 emailAddress 验证器来验证 email 的输入格式是否合法,不合法的话,给出一个提示信息: 'The input is not a valid email address'。

这个示例还展示了如何在验证器中指定出现错误时给出相应的提示信息。

结束语

至此,你应该已经学会了如何使用 Bootstrap 表单验证 formValidation 来实现表单的动态验证功能。希望你能够在实际开发中运用这些技术,为用户提供更加友好、便捷的应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Bootstrap 表单验证formValidation 实现表单动态验证功能 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • jQuery实现带有洗牌效果的动画分页实例

    首先让我们来理解一下这个问题的背景和要求。 背景: 现代网站中要求使用分页功能来展示大量数据。然而,单调的翻页效果会显得呆板,缺乏吸引力。因此,我们可以考虑使用带有动画效果的分页实例来增强用户体验。 要求: 本题要求我们使用jQuery来实现一个带有洗牌效果的动画分页实例。需要考虑用户界面的美观度和代码优雅性。 接下来我们开始讲解具体的实现方法。我们需要分为…

    JavaScript 2023年6月11日
    00
  • JS Common 2 之比较常用到的函数

    JS Common 2 之比较常用到的函数 在JavaScript中,有一些函数几乎在每个项目中都会用到,这些函数涵盖了数组、字符串等数据类型的处理,本文将对这些函数进行详细讲解。 Array.prototype.map() 定义 map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 语法 array.map(callb…

    JavaScript 2023年6月10日
    00
  • 如何调试异步加载页面里包含的js文件

    调试异步加载页面里包含的JS文件是网站开发中一项非常重要的任务。在这里,我将为你提供一些调试异步加载JS的攻略和技巧。 使用Chrome DevTools调试异步加载的JS文件 Chrome DevTools 是一个非常强大的调试工具,它提供了一些重要特性来调试异步加载的 JS 文件。以下是一些示例: 1.通过Sources面板调试异步加载的JS文件 在Ch…

    JavaScript 2023年5月27日
    00
  • Javascript Date UTC() 方法

    以下是关于JavaScript Date对象的UTC()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的UTC()方法 JavaScript的UTC()方法返回一个表示日期时间部分的数字,该数字表示自1970年1月1日00:00:00 UTC以来的毫秒数。该方法接受的参数分别为年份、月份、日期、小时、分钟、秒和毫秒,这些参数都是可选的…

    JavaScript 2023年5月11日
    00
  • JS设置cookie、读取cookie、删除cookie

    下面是JS设置cookie、读取cookie、删除cookie的完整攻略: 1. 设置Cookie 我们可以通过JS来设置cookie,具体方法如下: // 设置cookie document.cookie = "cookieName=cookieVal; expires=Sun, 1 Jan 2023 00:00:00 UTC; path=/&q…

    JavaScript 2023年6月11日
    00
  • JavaScript数据类型转换的注意事项

    JavaScript中的数据类型转换是非常常见的操作,但是在进行类型转换时需要注意一些细节,否则就会出现一些不期望的结果。本攻略将详细讲解JavaScript中数据类型转换的注意事项。 1. 显式类型转换 在JavaScript中,显式类型转换又称为强制类型转换,是指通过一些内置函数将某一数据类型强制转换为其他数据类型。 1.1 Number() Numbe…

    JavaScript 2023年5月18日
    00
  • JavaScript中DOM详解

    JavaScript中DOM详解 DOM(Document Object Model)是指用于处理HTML或XML文档的编程接口。我们可以使用JavaScript来操纵和更新HTML文档,这就需要用到DOM。本篇攻略将介绍如何用JavaScript来操作DOM。 DOM是什么? DOM是HTML文档的对象表示。浏览器将HTML文档解析成对象树,由此可以让我们…

    JavaScript 2023年6月10日
    00
  • 5种 JavaScript 方式实现数组扁平化

    下面是我准备的详细的 “5种 JavaScript 方式实现数组扁平化” 的攻略: 概述 在实际的开发中,数组扁平化是一个经常用到的操作,其中数组扁平化就是将嵌套的多层数组转换成一层数组。本文将会介绍5种 JavaScript 方式实现数组扁平化的具体步骤。 1. 使用 reduce() 方法 该方式使用reduce方法将嵌套的多层数组转换成一层数组。具体步…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部