2011-08-31 81 views
0

我想知道如何獲得輸入值,當它的名稱是一個數組。將帳單複製到發貨地址文本輸入數組

例如:

<tr> 
    <td>Address 1:</td> 
    <td><input type="text" name="billing_info[]" /></td> 
</tr> 
<tr> 
    <td>Address 2:</td> 
    <td><input type="text" name="billing_info[]" /></td> 
</tr> 
<tr> 
    <td>City:</td> 
    <td><input type="text" name="billing_info[]" /></td> 
    <td>State:</td> 
    <td><input type="text" name="billing_info[]" /></td> 
</tr> 

    <th><p>Shipping Info</p></th> 

<tr> 
     <td colspan="2"> 
      <input type="checkbox" id="shipping_address" 
      name="shipping_checkbox" />Same as Billing Address </td> 
</tr> 
<tr> 
     <td>Address 1:</td> 
     <td><input type="text" name="shipping_info[]" /></td>  

好像有用於複製使用jQuery的輸入值了很多例子,但我怎麼能得到billing_info[]值並在將它們複製到shipping_info[]

+0

只是說明你可能不想在狀態區使用無約束的值。紐約,紐約,紐約,紐約,紐約等都是你會得到的價值。改爲使用下拉菜單。 – Kzqai

回答

4

迭代通過每個使用迭代器i選擇要更新的航運輸入:

$('#copy').click(function(){ 
    $('input[name="billing[]"]').each(function(i, el){ 
     $('input[name="shipping[]"]').eq(i).val($(this).val()); 
    }); 
}); 

(我的代碼假設你將這個動作綁定到一個按鈕的點擊)

+0

你是缺少報價 –

+0

謝謝尼古拉 - 我已經更新了我的答案 –

+0

謝謝亞當,這太棒了。有時間更多地研究迭代器。 – DavidL

0

你可以在這裏做http://jsfiddle.net/trmr9/1/

+0

謝謝尼古拉。但是這個函數實際上將所有的值合併爲一個「值」變量。 – DavidL

+0

對不起,我明白這是你需要的! :) –

2

$('#copy').click(function() { 
    var value = ''; 
    $('input[name="billing_info[]"]').each(function() { 
     value += this.value; 
    }); 
    $('input[name="shipping_info[]"]').val(value); 
}); 

小提琴假設你有相同數量的航運要素和計費元素,他們在你的HTML對應的位置,這應該工作。

var shipping = $("input[name='shipping_info[]']"); 
var billing = $("input[name='billing_info[]']"); 
shipping.each(function(i, o) { 
    $(billing.get(i)).val($(o).val()); 
}) 

查看的jsfiddle工作演示:http://jsfiddle.net/FJjvt/

0

你輸入需要有獨特的ID。然後你可以使用jQuery這樣的:

$('#shippingaddress1').val($('#billingAddress1').val()); 

爲每雙輸入

相關問題