基于Bootstrap使用jQuery实现输入框组input-group的添加与删除


Posted in Javascript onMay 03, 2016

本文实例为大家分享使用jQuery实现输入框组input-group的添加与删除操作,供大家参考,具体内容如下

注意这里要求使用到Bootstrap框架的输入框组,如:

<div class="row"> 
 <div class="col-lg-6"> 
 <div class="input-group"> 
  <span class="input-group-addon"> 
  <input type="checkbox" aria-label="..."> 
  </span> 
  <input type="text" class="form-control" aria-label="..."> 
 </div><!-- /input-group --> 
 </div><!-- /.col-lg-6 --> 
 <div class="col-lg-6"> 
 <div class="input-group"> 
  <span class="input-group-addon"> 
  <input type="radio" aria-label="..."> 
  </span> 
  <input type="text" class="form-control" aria-label="..."> 
 </div><!-- /input-group --> 
 </div><!-- /.col-lg-6 --> 
</div><!-- /.row -->

Demo案例的效果图:

基于Bootstrap使用jQuery实现输入框组input-group的添加与删除

这里提供自制的 插件 inputGroup.js

参数为可以设置 输入框组中中间的控件是文本域还是输入框;以及设置在输入框组右侧的操作的内容。

使用inputGroup.js只要在对应的容器,如div中添加选择器,然后使用jQuery获取该选择器对应的jQuery对象,调用 initInputGroup方法即可。
inputGroup.js

/** 
 * Created by DreamBoy on 2016/4/29. 
 */ 
$(function() { 
 $.fn.initInputGroup = function (options) { 
  //1.Settings 初始化设置 
  var c = $.extend({ 
   'widget' : 'input', 
   'add' : "<span class=\"glyphicon glyphicon-plus\"></span>", 
   'del' : "<span class=\"glyphicon glyphicon-minus\"></span>" 
  }, options); 
 
  var _this = $(this); 
 
  //添加序号为1的输入框组 
  addInputGroup(1); 
 
  /** 
   * 添加序号为order的输入框组 
   * @param order 输入框组的序号 
   */ 
  function addInputGroup(order) { 
   //1.创建输入框组 
   var inputGroup = $("<div class='input-group' style='margin: 10px 0'></div>"); 
   //2.输入框组的序号 
   var inputGroupAddon1 = $("<span class='input-group-addon'></span>"); 
   //3.设置输入框组的序号 
   inputGroupAddon1.html(" " + order + " "); 
 
   //4.创建输入框组中的输入控件(input或textarea) 
   var widget = '', inputGroupAddon2; 
   if(c.widget == 'textarea') { 
    widget = $("<textarea class='form-control' style='resize: vertical;'></textarea>"); 
    inputGroupAddon2 = $("<span class='input-group-addon'></span>"); 
   } else if(c.widget == 'input') { 
    widget = $("<input class='form-control' type='text'/>"); 
    inputGroupAddon2 = $("<span class='input-group-btn'></span>"); 
   } 
 
   //5.创建输入框组中最后面的操作按钮 
   var addBtn = $("<button class='btn btn-default' type='button'>" + c.add + "</button>"); 
   addBtn.appendTo(inputGroupAddon2).on('click', function() { 
    //6.响应删除和添加操作按钮事件 
    if($(this).html() == c.del) { 
     $(this).parents('.input-group').remove(); 
    } else if($(this).html() == c.add) { 
     $(this).html(c.del); 
     addInputGroup(order+1); 
    } 
    //7.重新排序输入框组的序号 
    resort(); 
   }); 
 
   inputGroup.append(inputGroupAddon1).append(widget).append(inputGroupAddon2); 
 
   _this.append(inputGroup); 
  } 
 
  function resort() { 
   var child = _this.children(); 
   $.each(child, function(i) { 
    $(this).find(".input-group-addon").eq(0).html(' ' + (i + 1) + ' '); 
   }); 
  } 
 } 
});

Demo案例——InputGroupDemo
目录结构如下:

基于Bootstrap使用jQuery实现输入框组input-group的添加与删除

index.html

<!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"> 
 <title>输入框组</title> 
 <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css"> 
 <style> 
  /*.input-group-add .input-group { 
   margin: 10px 0; 
  }*/ 
 </style> 
 
 <!--<link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" />--> 
 <!--[if lt IE 9]> 
 <script src="js/html5shiv.js"></script> 
 <script src="js/respond.min.js"></script> 
 <![endif]--> 
</head> 
<body> 
 <div class="container"> 
  <div class="input-group-add"> 
   <!--<div class="input-group"> 
    <span class="input-group-addon"> 1 </span> 
    <!?<input type="text" class="form-control" aria-label="...">?> 
    <textarea class="form-control"></textarea> 
    <span class="input-group-addon"> 
     <button class="btn btn-default" type="button"> + </button> 
    </span> 
   </div>--> 
  </div> 
 </div> 
 
 <script src="js/jquery-1.11.1.min.js"></script> 
 <script src="js/bootstrap.min.js"></script> 
 <script src="inputGroup.js"></script> 
 <script> 
  $(function() { 
   $('.input-group-add').initInputGroup({ 
    'widget' : 'textarea', //输入框组中间的空间类型 
    /*'add' : '添加', 
    'del' : '删除'*/ 
   }); 
  }); 
 </script> 
</body> 
</html>

如果输入框组中的中间控件需要input,则可以设置:

$('.input-group-add').initInputGroup({ 
    'widget' : 'input', //输入框组中间的空间类型 
    /*'add' : '添加', 
    'del' : '删除'*/ 
   });

或者不进行设置,因为默认中间控件为input。
中间控件为input的效果如下:

基于Bootstrap使用jQuery实现输入框组input-group的添加与删除

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
javascript中创建对象的三种常用方法
Dec 30 Javascript
ModelDialog JavaScript模态对话框类代码
Apr 17 Javascript
javascript学习笔记(一) 在html中使用javascript
Jun 18 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
Jan 15 Javascript
jquery ajax修改全局变量示例代码
Nov 08 Javascript
jQuery原型属性和原型方法详解
Jul 07 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
May 30 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
BootStrap TreeView使用实例详解
Nov 01 Javascript
基于Node的Axure文件在线预览的实现代码
Aug 28 Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 Javascript
JQuery的Pager分页器实现代码
May 03 #Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
May 03 #Javascript
JQuery核心函数是什么及使用方法介绍
May 03 #Javascript
jquery对象访问是什么及使用方法介绍
May 03 #Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
May 03 #Javascript
javascript的BOM
May 03 #Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
May 03 #Javascript
You might like
用PHP动态创建Flash动画
2006/10/09 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
使用Python构造hive insert语句说明
2020/06/06 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
网站设计师的岗位职责
2013/11/21 职场文书
送货司机岗位职责
2013/12/11 职场文书
办公室秘书自我鉴定
2014/01/18 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
中学校庆方案
2014/03/17 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
奔腾年代观后感
2015/06/09 职场文书
老兵退伍感言
2015/08/03 职场文书