html动态添加input

 html动态添加input

公司主营业务:成都网站制作、成都做网站、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出孝义免费做网站回馈大家。

 

html动态添加input

 

  1.  
  2.  
  3.  
  4.  
  5.  
  6. html动态添加input 
  7.  
  8. body { font:12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif; } 
  9. ul { margin:0; padding:0; list-style:none; } 
  10. a { margin-left:5px; color:#07F; text-decoration:none; } 
  11. a:hover { text-decoration:underline; } 
  12. input { border:1px solid #ccc; margin:2px; } 
  13. table { border-collapse:collapse; border-spacing:0; } 
  14. td { margin:0; padding:10px; border:1px solid #ccc; } 
  15.  
  16.  
  17.  
  18. $(function(){ 
  19.     $("#demo1").easyinsert();//最简单的应用 
  20.     $("#demo2").easyinsert({ 
  21.         name: ["demo2", "demo2"],//可以同时添加两个(或更多),name值相同也必须分开设置,name数组的长度就是每组input的个数。type、value、maxlength、className四种属性,若同组组员的设置一样,可以只设置一次。 
  22.         value: ["默认值2-1", "默认值2-2"],//可以给同组input分别设置默认值 
  23.         maxlength: 15,//每组input的maxlength都一样,无需使用数组 
  24.         className: ["demo2_class1", "demo2_class2"],//不用我解释了吧 
  25.         toplimit: 5,//可以添加组数上限(默认是0,表示无上限),它是总管,so,name相当于小组组长 
  26.         initValue: [//初始化的时候,各input的value就是归它管,必须是数组 
  27.             ["初始值2-1", "初始值2-2"] 
  28.         ] 
  29.     }); 
  30.     $("#demo3").easyinsert({ 
  31.         name: "demo3", 
  32.         toplimit: 2, 
  33.         initValue: [ 
  34.             ["初始值3-1"],//必须是数组,就算每组只有一个input 
  35.             ["初始值3-2"], 
  36.             ["初始值3-3"]//小三儿,别想蒙混过关,总管只允许添加两组 
  37.         ] 
  38.     }); 
  39.     $("#demo4").easyinsert({ 
  40.         name: ["demo4", "demo4", "demo4", "demo4", "demo4", "demo4"], 
  41.         type: ["text", "radio", "password", "checkbox", "file", "button"], 
  42.         value: ["我是text", "我是radio", "我是password", "我是checkbox", "", "我是button"] 
  43.     }); 
  44.     $("#demo5").easyinsert({//type新增custom和select 
  45.         name: ["demo5", "demo5", "demo5", "demo5"], 
  46.         type: ["custom", "text", "custom", "select"], 
  47.         value: ["科目:", "", "类型:", { '理论': '1', '技能': '2', '上机': '3' }], 
  48.         initValue: [ 
  49.             ["科目:", "初始值5-1", "类型:", { '理论a': '1', '技能a': '2', '上机a': '3' }], 
  50.             ["科目:", "初始值5-1", "类型:", { '理论b': '1', '技能b': '2', '上机b': '3' }] 
  51.         ] 
  52.     }); 
  53. }); 
  54.  
  55. /** 
  56.  * EasyInsert 4.0 
  57.  * http://IlikejQuery.com/EasyInsert 
  58.  * 
  59.  * @Creator   wo_is神仙  
  60.  * @Depend    jQuery 1.4+ 
  61. **/ 
  62.  
  63. ;(function($){ 
  64.     $.fn.extend({ 
  65.         "easyinsert": function(o){ 
  66.             o = $.extend({ 
  67.                 //触发器 
  68.                 clicker: null,//根据class(或id)选择,默认.next()获取 
  69.                 //父标签 
  70.                 wrap: "li", 
  71.                 name: "i-text", 
  72.                 type: "text", 
  73.                 value: "", 
  74.                 maxlength: 20, 
  75.                 className: "i-text", 
  76.                 //新增上限值 
  77.                 toplimit: 0,//0表示不限制 
  78.                 //初始化值,二维数组 
  79.                 initValue: null//用于修改某资料时显示已有的数据 
  80.             }, o || {}); 
  81.             var oo = { 
  82.                 remove: "移除", 
  83.                 error1: "参数配置错误,数组的长度不一致,请检查。", 
  84.                 error2: "参数配置错误,每组初始化值都必须是数组,请检查。" 
  85.             } 
  86.             //容器 
  87.             var $container = $(this); 
  88.             var allowed = true; 
  89.  
  90.             //把属性拼成数组(这步不知道是否可以优化?) 
  91.             var arrCfg = new Array(o.name, o.type, o.value, o.maxlength, o.className); 
  92.             //arr ==> [name, type, value, maxlength, className]  
  93.             var arr = new Array(); 
  94.             $.each(arrCfg, function(i, n){ 
  95.                 if ( $.isArray(n) ) { 
  96.                     arr[i] = n; 
  97.                 } else { 
  98.                     arr[i] = new Array(); 
  99.                     if ( i === 0 ) { 
  100.                         arr[0].push(n); 
  101.                     }else{ 
  102.                         //补全各属性数组(根据name数组长度) 
  103.                         $.each(arr[0], function() { 
  104.                             arr[i].push(n); 
  105.                         }); 
  106.                     } 
  107.                 } 
  108.                 //判断各属性数组的长度是否一致 
  109.                 if ( arr[i].length !== arr[0].length ) { 
  110.                     allowed = false; 
  111.                     $container.text(oo.error1); 
  112.                 } 
  113.             }); 
  114.  
  115.             if ( allowed ) { 
  116.                 //获取触发器 
  117.                 var $Clicker = !o.clicker ? $container.next() : $(o.clicker); 
  118.                 $Clicker.bind("click", function() { 
  119.                     //未添加前的组数 
  120.                     var len = $container.children(o.wrap).length; 
  121.                     //定义一个变量,判断是否已经达到上限 
  122.                     var isMax = o.toplimit === 0 ? false : (len < o.toplimit ? false : true); 
  123.                     if ( !isMax ) {//没有达到上限才允许添加 
  124.                         var $Item = $("<"+ o.wrap +">").appendTo( $container ); 
  125.                         $.each(arr[0], function(i) { 
  126.                             switch ( arr[1][i] ) { 
  127.                                 case "select"://下拉框 
  128.                                     var option = ""; 
  129.                                     $.each(arr[2][i], function(i, n) { 
  130.                                         option += ""+ i +""; 
  131.                                     }); 
  132.                                     $("", {//jQuery1.4新增方法 
  133.                                         name: arr[0][i], 
  134.                                         type: arr[1][i], 
  135.                                         value: arr[2][i], 
  136.                                         maxlength: arr[3][i], 
  137.                                         className: arr[4][i] 
  138.                                     }).appendTo( $Item ); 
  139.                             } 
  140.                         }); 
  141.                         $Item = $container.children(o.wrap); 
  142.                         //新组数 
  143.                         len = $Item.length; 
  144.                         if ( len > 1 ) { 
  145.                             $Item.last().append(oo.remove); 
  146.                             if ( len === 2 ) {//超过一组时,为第一组添加“移除”按钮 
  147.                                 $Item.first().append(oo.remove); 
  148.                             } 
  149.                         } 
  150.                         $Item.find(".remove").click(function(){ 
  151.                             //移除本组 
  152.                             $(this).parent().remove(); 
  153.                             //统计剩下的组数 
  154.                             len = $container.children(o.wrap).length; 
  155.                             if ( len === 1 ) {//只剩一个的时候,把“移除”按钮干掉 
  156.                                 $container.find(".remove").remove(); 
  157.                             } 
  158.                             //取消“移除”按钮的默认动作 
  159.                             return false; 
  160.                         }); 
  161.                     } 
  162.                     //取消触发器的默认动作 
  163.                     return false; 
  164.                 }); 
  165.                 //初始化 
  166.                 if ( $.isArray(o.initValue) ) {//判断初始值是否是数组(必需的) 
  167.                     $.each(o.initValue, function(i, n) { 
  168.                         if ( !$.isArray(n) ) { 
  169.                             $container.empty().text(oo.error2); 
  170.                             return false; 
  171.                         }else{ 
  172.                             if ( n.length !== arr[0].length ) { 
  173.                                 $container.empty().text(oo.error1); 
  174.                                 return false; 
  175.                             } 
  176.                         } 
  177.                         var arrValue = new Array(); 
  178.                         //初始值替换默认值 
  179.                         $.each(n, function(j, m) { 
  180.                             arrValue[j] = arr[2][j] 
  181.                             arr[2][j] = m; 
  182.                         }); 
  183.                         $Clicker.click(); 
  184.                         //默认值替换初始值 
  185.                         $.each(arrValue, function(j, m) { 
  186.                             arr[2][j] = m; 
  187.                         }); 
  188.                         //上面这种[移形换位法]不知道效率怎么样,我想不出别的更好的方法 
  189.                     }); 
  190.                 }else{ 
  191.                     $Clicker.click(); 
  192.                 } 
  193.             } 
  194.         } 
  195.     }); 
  196. })(jQuery); 
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      
  203.         Demo1 
  204.          
  205.              
  206.             + 添加 
  207.          
  208.      
  209.      
  210.         Demo2 
  211.          
  212.              
  213.             + 添加(最多5项) 
  214.          
  215.      
  216.      
  217.         Demo3 
  218.          
  219.              
  220.             + 添加(最多2项) 
  221.          
  222.      
  223.      
  224.         Demo4 
  225.          
  226.              
  227.             + 添加 
  228.          
  229.      
  230.      
  231.         Demo5 NEW 
  232.          
  233.              
  234.             + 添加 
  235.          
  236.      
  237.  
  238.  
  239.  

 

下载地址:

http://down.51cto.com/data/648996


分享名称:html动态添加input
URL网址:http://ybzwz.com/article/jjiiig.html