Jquery动态添加输入框
jquery 动态添加输入框的两种方法。
1.展示页面
<!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 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> <h1>动态添加输入框</h1> <div class="container"> <h2>第一种组件封装</h2> <div class="input-group-add"> </div> <h2>第二种简单的实现方式</h2> <div class="input-dyna-add"> </div> <input type="button" onclick="addInput()" value="添加"/> <input type="button" onclick="getValue()" value="获取值"/> </div> <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="add.js"></script> <script> $(function() { $('.input-group-add').initInputGroup({ 'widget' : 'input', //输入框组中间的空间类型 /* 'add' : '添加', 'del' : '删除', */ 'field': 'data', 'data' : ['250', '300', 'hi', 'dj'] }); }); function addInput() { var input = $(" <div class='input-group form-inline'><input type='text' class='form-control' style='width:50%;margin-bottom:2px;' name='desc[]' placeholder='请输入名字'> <input type='text' name='price[]' class='form-control' style='width:30%;margin-bottom:2px;'> <button class='removeclass btn btn-default' type='button'><span class='glyphicon glyphicon-minus'></span></button></div>'"); // append 表示添加在标签内, appendTo 表示添加在元素外尾 $(".input-dyna-add").append(input); } function getValue() { var valArr = new Array; $("input[name='desc[]']").each(function(index, item){ valArr[index] = $(this).val(); var priv = valArr.join(','); alert(priv); }); // console.log(desc); } $("body").on("click",".removeclass", function(e){ // remove text box $(this).parent('div').remove(); return false; }) </script> </body> </html>
二、js方法
add.js
/** * Created by DreamBoy on 2016/6/4. */ $(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>", field: '', data: [] }, options); var _this = $(this); //添加序号为1的输入框组 addInputGroup(1); /** * 添加序号为order的输入框组 * @param order 输入框组的序号 * @param data 初始化输入框组中的数据 */ function addInputGroup(order) { //1.创建输入框组 var inputGroup = $("<div class='input-group' style='width:60%;' 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>"); widget.html(c.data[order - 1]); inputGroupAddon2 = $("<span class='input-group-addon'></span>"); } else if(c.widget == 'input') { widget = $(" <input type='text' class='form-control' style='width:40%;margin-bottom:2px;' placeholder='请输入名字'> <input class='form-control' style='width:20%;margin-bottom:2px;' type='text'/>"); widget.val(c.data[order - 1]); inputGroupAddon2 = $("<span class='input-group-btn' style='left:20px;'></span>"); } //5.设置表单提交时的字段名 if(c.field.length == 0) { widget.prop('name', c.widget + 'Data[]'); } else { widget.prop('name', c.field + '[]'); } //6.创建输入框组中最后面的操作按钮 var addBtn = $("<button class='btn btn-default' type='button'>" + c.add + "</button>"); addBtn.appendTo(inputGroupAddon2).on('click', function() { //7.响应删除和添加操作按钮事件 if($(this).html() == c.del) { $(this).parents('.input-group').remove(); } else if($(this).html() == c.add) { $(this).html(c.del); addInputGroup(order+1); } //8.重新排序输入框组的序号 resort(); }); inputGroup.append().append(widget).append(inputGroupAddon2); _this.append(inputGroup); if(order + 1 > c.data.length) { return; } addBtn.trigger('click'); } function resort() { var child = _this.children(); $.each(child, function(i) { $(this).find(".input-group-addon").eq(0).html(' ' + (i + 1) + ' '); }); } } });
相关知识汇总:
我用jquery开发我们前端时,我们用js添加和删除元素是不可避免的。
我总结了一点用jquery添加和删除元素。
添加元素:
例如你需要在<div id="main"></div>中添加元素:
$('#main').append('<p>added</P>');
删除元素:
第一种情况,删除mian下面的所有子集,但main保留住。
$('#main').empty();
第二种情况,删除main下面的所有子集,包括mian自己。
$('#main').remove();
相关推荐
delmarks 2020-06-07
EdwardSiCong 2020-11-23
85477104 2020-11-17
hhanbj 2020-11-17
81427005 2020-11-11
seoppt 2020-09-13
honeyth 2020-09-13
WRITEFORSHARE 2020-09-13
84483065 2020-09-11
momode 2020-09-11
85477104 2020-08-15
83510998 2020-08-08
82550495 2020-08-03
tthappyer 2020-08-03
84901334 2020-07-28
tthappyer 2020-07-25
TONIYH 2020-07-22
tztzyzyz 2020-07-20
83510998 2020-07-18