使用bootstrapValidator插件进行动态添加表单元素并校验

yizhihongxing

让我来为您详细讲解如何使用bootstrapValidator插件进行动态添加表单元素并校验。

1、bootstrapValidator简介

bootstrapValidator是一个基于Bootstrap的优秀表单验证插件,支持表单的实时验证和AJAX提交,提供多种验证方式,例如:必填、长度、邮箱、手机、网址等。

2、动态添加表单元素

当我们需要动态地添加表单元素时,可以使用jquery的append()方法在表单中添加新的html元素。

例如,在页面上添加一个按钮,点击按钮可以动态地在表单中添加一个文本框:

<form id="myForm">
  <div class="form-group">
    <label>姓名:</label>
    <input type="text" name="name" class="form-control" />
  </div>
  <div class="form-group">
    <label>年龄:</label>
    <input type="text" name="age" class="form-control" />
  </div>
  <div class="form-group" id="add">
    <button type="button" class="btn btn-primary">添加其它信息</button>
  </div>
</form>
$(function () {
  $('#add').click(function () {
    $('#myForm').append('<div class="form-group"><label>城市:</label><input type="text" name="city" class="form-control"></div>');
  })
});

3、使用bootstrapValidator校验动态添加的表单元素

当我们动态地添加了表单元素后,需要对这些新添加的元素进行校验,可以通过bootstrapValidator的addField()removeField()方法来实现。

例如,在上述的动态添加表单元素的示例中,我们需要对新添加的城市文本框进行校验,可以按照以下步骤进行:

首先,在页面中引入bootstrap-validator.min.jsbootstrap.min.css文件。

然后,在表单元素动态添加的jquery代码中,加入校验代码:

$(function () {
  $('#add').click(function () {
    $('#myForm').append('<div class="form-group"><label>城市:</label><input type="text" name="city" class="form-control"></div>');
    $('#myForm').bootstrapValidator('addField', 'city', {
      validators: {
        notEmpty: {
          message: '城市不能为空'
        },
        stringLength: {
          min: 2,
          max: 10,
          message: '城市长度必须在2到10之间'
        }
      }
    });
  })
});

这里我们使用了addField()方法给动态添加的城市文本框添加了校验规则。具体来说,我们为城市文本框添加了非空和长度限制校验规则。

如果要移除这个城市文本框的校验规则,可以使用removeField()方法,示例如下:

$(function () {
  $('#add').click(function () {
    $('#myForm').append('<div class="form-group"><label>城市:</label><input type="text" name="city" class="form-control"></div>');
    $('#myForm').bootstrapValidator('addField', 'city', {
      validators: {
        notEmpty: {
          message: '城市不能为空'
        },
        stringLength: {
          min: 2,
          max: 10,
          message: '城市长度必须在2到10之间'
        }
      }
    });
  })
  // 移除城市文本框的校验规则
  $('button#remove').click(function () {
    $('#myForm').bootstrapValidator('removeField', 'city');
    $('#myForm div.form-group:last').remove();
  })
});

这里我们添加了一个按钮,点击该按钮可以移除动态添加的城市文本框及其校验规则。

4、示例

下面为两个示例:

示例一:向表单中动态添加文本框,限制文本框长度在3到8个字符之间

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>bootstrapValidator示例</title>
  <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
  <div class="container">
    <form id="myForm">
      <div class="form-group">
        <label>用户名:</label>
        <input type="text" name="username" class="form-control" />
      </div>
      <div class="form-group">
        <label>密码:</label>
        <input type="password" name="password" class="form-control" />
      </div>
      <div class="form-group" id="add">
        <button type="button" class="btn btn-primary">添加其它信息</button>
      </div>
      <button type="submit" class="btn btn-success">提交</button>
    </form>
  </div>
  <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-validator/0.5.3/js/bootstrapValidator.min.js"></script>
  <script>
    $(function () {
      $('#myForm').bootstrapValidator({
        feedbackIcons: {
          valid: 'glyphicon glyphicon-ok',
          invalid: 'glyphicon glyphicon-remove',
          validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
          username: {
            validators: {
              notEmpty: {
                message: '用户名不能为空'
              }
            }
          },
          password: {
            validators: {
              notEmpty: {
                message: '密码不能为空'
              }
            }
          }
        },
        submitHandler: function (validator, form, submitButton) {
          alert('提交成功');
        },
        onError: function (event, validator) {
          alert('请检查您填写的信息');
        }
      });

      $('#add').click(function () {
        $('#myForm').append('<div class="form-group"><label>其他信息:</label><input type="text" name="other" class="form-control"></div>');
        $('#myForm').bootstrapValidator('addField', 'other', {
          validators: {
            stringLength: {
              min: 3,
              max: 8,
              message: '请输入3-8个字符'
            }
          }
        });
      })
    });
  </script>
</body>
</html>

示例二:向表单中动态添加下拉框,限制下拉框必选

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>bootstrapValidator示例</title>
  <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
  <div class="container">
    <form id="myForm">
      <div class="form-group">
        <label>姓名:</label>
        <input type="text" name="name" class="form-control" />
      </div>
      <div class="form-group">
        <label>年龄:</label>
        <input type="text" name="age" class="form-control" />
      </div>
      <div class="form-group" id="add">
        <button type="button" class="btn btn-primary">添加其它信息</button>
      </div>
      <button type="submit" class="btn btn-success">提交</button>
    </form>
  </div>
  <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-validator/0.5.3/js/bootstrapValidator.min.js"></script>
  <script>
    $(function () {
      $('#myForm').bootstrapValidator({
        feedbackIcons: {
          valid: 'glyphicon glyphicon-ok',
          invalid: 'glyphicon glyphicon-remove',
          validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
          name: {
            validators: {
              notEmpty: {
                message: '姓名不能为空'
              }
            }
          },
          age: {
            validators: {
              notEmpty: {
                message: '年龄不能为空'
              }
            }
          }
        },
        submitHandler: function (validator, form, submitButton) {
          alert('提交成功');
        },
        onError: function (event, validator) {
          alert('请检查您填写的信息');
        }
      });

      $('#add').click(function () {
        var html = '<div class="form-group">';
        html += '<label>城市:</label>';
        html += '<select name="city" class="form-control">';
        html += '<option value="">请选择城市</option>';
        html += '<option value="北京">北京</option>';
        html += '<option value="上海">上海</option>';
        html += '<option value="广州">广州</option>';
        html += '<option value="深圳">深圳</option>';
        html += '</select>';
        html += '</div>';
        $('#myForm').append(html);
        $('#myForm').bootstrapValidator('addField', 'city', {
          validators: {
            notEmpty: {
              message: '请选择城市'
            }
          }
        });
      })
    });
  </script>
</body>
</html>

以上就是使用bootstrapValidator插件进行动态添加表单元素并校验的完整攻略。希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用bootstrapValidator插件进行动态添加表单元素并校验 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JavaScript中字符串与Unicode编码互相转换的实现方法

    下面是JavaScript中字符串与Unicode编码互相转换的实现方法的完整攻略。 字符串与Unicode编码互相转换的方法 在JavaScript中,字符串与Unicode编码可以互相转换。字符串是由Unicode编码组成的序列,每个字符对应一个Unicode编码。Unicode编码可以表示几乎所有的字符,包括各种语言的字母、数字、符号、标点符号、表情符…

    JavaScript 2023年5月20日
    00
  • JavaScript 滚轮事件使用说明

    下面为大家详细讲解JavaScript滚轮事件使用说明的完整攻略。 一、什么是JavaScript滚轮事件 JavaScript可以监听各种用户输入事件,其中包括鼠标滚轮事件。鼠标滚轮事件通常用来控制页面或者应用的滚动条滚动,也可以用来做一些交互效果。 二、滚轮事件原理 鼠标滚轮事件原理和其他鼠标事件类似,需要通过事件监听和回调函数来实现。当鼠标滚轮发生滚动…

    JavaScript 2023年6月10日
    00
  • JavaScript函数中this指向问题详解

    下面就为您详细讲解“JavaScript函数中this指向问题详解”的完整攻略。 JavaScript函数中this指向问题详解 在JavaScript中,函数的this指向经常导致开发人员困惑。本文将详细介绍JavaScript中函数的this指向问题。了解这些概念和最佳实践有助于轻松编写高效的JavaScript代码。 什么是this? 在JavaScr…

    JavaScript 2023年6月10日
    00
  • JavaScript substr() 字符串截取函数使用详解

    JavaScript substr() 字符串截取函数使用详解 什么是 JavaScript 的 substr() 函数? JavaScript 字符串的 substr() 函数用于截取字符串中某个指定位置开始的一段子字符串。这个函数可以接收两个参数——起始位置和截取长度,如下所示: string.substr(start, length) 其中, star…

    JavaScript 2023年5月28日
    00
  • JavaScript之json_动力节点Java学院整理

    JavaScript之json_动力节点Java学院整理 什么是JSON JSON(JavaScript Object Notation)是一种轻量级、易于人阅读和编写的数据交换格式,其数据结构与Javascript中对象字面量相似,因此常用于与Javascript进行数据交互。 JSON的数据格式包括两种结构类型:对象和数组。对象是一个无序的“键/值”对集…

    JavaScript 2023年6月11日
    00
  • javascript 表单日期选择效果

    我来为你详细讲解一下“JavaScript 表单日期选择效果”的完整攻略。 1. 学习目标 通过本文,你将学会如何使用 JavaScript 实现表单日期选择效果,具体实现包括以下几个部分: 在 HTML 页面中编写日期选择框 使用 JavaScript 实现日期选择框的弹出及隐藏 在 JavaScript 中编写判断闰年的函数 在 JavaScript 中…

    JavaScript 2023年5月27日
    00
  • JS异步代码单元测试之神奇的Promise

    JS异步代码单元测试一直是开发人员要面对的挑战。为了解决这个问题,Promise异步编程模式被引入到JavaScript中,因其简单、灵活和可重用性而受到广泛认可。在本攻略中,我们将深入探讨如何在单元测试中使用Promise,以及如何跟踪异步代码逻辑和处理可能的异步回调。 异步单元测试面临的问题 在传统的单元测试中,我们可以通过直接调用函数、对函数输出结果进…

    JavaScript 2023年5月28日
    00
  • JavaScript仿flash遮罩动画效果

    下面是详细的“JavaScript仿flash遮罩动画效果”攻略: 1. 概述 遮罩效果是一种常见的动画效果,我们可以利用JavaScript实现类似Flash中的遮罩效果,通过遮罩来限制或显示要展示的内容,使得整个页面更加生动有趣。 2. 实现原理 JavaScript仿Flash遮罩动画的实现原理就是通过控制一个遮罩块的大小和位置,来限制或显示另一个块中…

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