基于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 相关文章推荐
用js+xml自动生成表格的东西
Dec 21 Javascript
javascript中全局对象的isNaN()方法使用介绍
Dec 19 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 Javascript
jQuery中removeClass()方法用法实例
Jan 05 Javascript
理解javascript正则表达式
Mar 08 Javascript
Angular ng-class详解及实例代码
Sep 19 Javascript
C#微信小程序服务端获取用户解密信息实例代码
Mar 10 Javascript
Bootstrap如何激活导航状态
Mar 22 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
小程序实现发表评论功能
Jul 06 Javascript
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
Oct 23 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中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
图解js图片轮播效果
2015/12/20 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
vue的mixins属性详解
2018/03/14 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
Python中Collection的使用小技巧
2014/08/18 Python
Python三元运算实现方法
2015/01/12 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
python3.4爬虫demo
2019/01/22 Python
python操作excel让工作自动化
2019/08/09 Python
Python安装OpenCV的示例代码
2020/03/05 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
python super()函数的基本使用
2020/09/10 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
职务说明书范文
2014/05/07 职场文书
优秀员工推荐信
2014/05/10 职场文书
关于保护环境的建议书
2014/08/26 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android