2013-08-30 106 views
0

形式复制第一个输入字段为以下输入字段使用jQuery

<form id="form1" name="form1" method="post" action=""> 
    name_field 
    <input type="text" name="field_1" id="field_1" /> 
    <a href="#" id="dup" name="dup" >Use same</a> 
    <input type="text" name="field_2" id="field_2" /> 
    <input type="text" name="field_3" id="field_3" /> 
    ... 
    <input type="text" name="field_x" id="field_x" /> 
</form> 

我要寻找一个AJAX脚本将克隆field_1到field_1直到field_x .. 这是填充的名称的方法所有球员的球队。

$(".dup").click(function() { 
    var myinput = $(".field_1").val(); 
    $("input[class^='field_']").html(myinput); 
    }); 

$(".dup").live("click", function(e) { 
    var count = $(".form1 fieldset").length + 1; 
    $(this).parent().clone().insertBefore("#sbmt").find("input[type=text]").attr({ 
     "id": "input" + count, 
     "name": "input" + count 
    }).val(""); 
}); 

//更新:

原来,5场是这样的类型: 和变化在3的倍数做..所以

<input id="field_1" type="text" name="Item[fields][1]" ><a href="#" id="dup1">Use Info</a> 
<input id="field_2" type="text" name="Item[fields][2]" ><a href="#" id="dup2">Use Team</a> 
<input id="field_3" type="text" name="Item[fields][3]" ><a href="#" id="dup3">Use Year</a> 
<input id="field_4" type="text" name="Item[fields][4]" > 
<input id="field_5" type="text" name="Item[fields][5]" > 
<input id="field_6" type="text" name="Item[fields][6]" > 
<input id="field_7" type="text" name="Item[fields][7]" > 
<input id="field_8" type="text" name="Item[fields][8]" > 
<input id="field_9" type="text" name="Item[fields][9]" > 
.... 
<input id="field_2" type="text" name="Item[fields][x]" > 


so clicking 
dup1, clone field[1] into [4],[7] ...[1+3(i)] 
dup2, clone field[2] into [5],[8],...[2+3(i)] 
dup3, clone field[3] into [6],[9],...[3+3(i)] 

我不能使用的值id因为它是不一致的..它具有诸如year_league66134的值

回答

0

使用.val(),你没有定义class,并用它来代替阶级使用id属性来解决你的问题。

Repalce class

$(".field_1").val(); 
$("input[class^='field_']").html(myinput); 

ID

$("#field_1").val(); 
$("input[id^='field_']").val(myinput); 
+0

This works.Thanks。但我改变了我的剧本。 –

0

您需要使用.val来设置值也

$(".dup").click(function() { 
    var myinput = $(".field_1").val(); 
    $("input[name^='field_']").val(myinput); 
    }); 
0

.val()

变化

$("input[class^='field_']").html(myinput); 

$("input[class^='field_']").val(myinput); 
+0

这样的事? ([input [name^='fields] [1 + 3(i)“)为($ i = 1; i <(Item [fields] .length + 1)/ 3; $ i ++){ ' VAL(myinput); }' –

0

试试这个功能

function CreateInputText(index) { 
     var input = document.createElement('input'); 
     input.setAttribute('type', 'text'); 
     input.setAttribute('id', 'field_' + index); 
     input.setAttribute('name', 'field_' + index); 
     $(input).insertBefore('#sbmt'); 
    } 

你可以把它的文件,如果你准备好需要像

$(document).ready(function() { 
     for (var i = 0; i < 5; i++) { 
      CreateInputText(i); 
     } 
    }); 
+0

这个答案的问题在于输入字段不限于5 ..它根据客户订购的T恤数量而变化 –

+0

使用变量并使用客户订购的次数;) – iJade

+0

我实际上正在使用输入数组的长度:for($ i = 1; i <(Item [fields] .length + 1)/ 3; $ i ++) –