2012-06-01 45 views
0

值這個函數克隆一組文本輸入字段的一個div,當用戶點擊添加按鈕內:克隆表單字段被填充以來自先前字段

function addRows(label, maxRows, minRows) { 
    $('.add-' + label).live('click', function() { 
    if ($("." + label + "-group").length < maxRows) { 
     $('#' + label + '-template') 
     .clone() 
     .removeAttr('id') 
     .insertAfter($(this).closest('.' + label + '-group')) 
     .find('.minus') 
     .show(); 
    } 
    }); 
} 

當用戶在一個字段填充,然後單擊添加按鈕,它會顯示一行新的字段,但它們會填入用戶在前一行中輸入的值。

解決此問題的最佳方法是什麼?我想我可以清空該行實例的所有輸入文本字段。

我只是不知道如何清除相應的行。

字段名:first_name[], last_name[], phone[]

所以,當克隆這三個領域的一個新行,它們將具有相同的名稱與上述領域。

當用戶提交,我會遍歷first_name[], last_name[], phone[]

+0

首先之後,'live'在新版本的jQuery中已棄用。更好地使用'on'或事件委派代替。 – Sethen

+0

注入後在輸入上設置.val('') –

+0

此外,.clone()方法執行匹配元素集的深層副本,這意味着它會複製匹配的元素以及它們所有的後代元素和文本節點。「直接從jQuery API。清除'.val()'如下面的答案可能會起作用。 – Sethen

回答

3

每個值試試這個,叫val()其他方法,如appendToinsertAfter

$('#' + label + '-template').clone().val("")... 

http://jsfiddle.net/pnQhh/

+0

$('#'+ label +'-template')。find('input')。val(''); – Brad

+0

@Brad這會使原始輸入值爲無,您可以在克隆後調用'val()'。 – undefined