2011-11-18 122 views
0
<div class="input url required addnew" id="ConfigurationValues"> 
    <label>Bigblue</label> 
    <input name="data[Configuration][value][]" value="cool" type="text"> 
    <input name="data[Configuration][value][]" value="awesome" type="text"> 
    <input name="data[Configuration][value][]" value="neat" type="text"> 
    <div class="actions" style="padding-left:0px;"> 
    <a onclick="return FALSE;" href="#" id="AddNew">Add</a> 
    </div>           
</div> 

我想複製/克隆輸入。我有下面的代碼適用於文本。克隆/添加新表格字段

$('a.AddNew').click(function(){ 
    var pool = $(this).closest('.addnew'); 
    pool.find('input[type=text]:first').clone().val('').insertAfter(pool.find("input[type=text]:last")); 
    return false 
}) 

現在我想寫一個廣義的代碼照顧type = url,email,tel,number和select標籤。

在上面的代碼行3-6將改變folows

<input name="data[Configuration][value][]" value="neat" type="url"> 

<input name="data[Configuration][value][]" value="neat" type="tel"> 

<select></select> 
+0

這不是很清楚你想要什麼。 HTML的樣子是什麼? – RoToRa

回答

0

你的意思是這樣的:

function cloneElement(selector) { 
    $('a.AddNew').click(function(){ 
    var pool = $(this).closest('.addnew'); 
    var inputs = pool.find(selector); 
    inputs.first().clone().val('').insertAfter(inputs.last()); 
    return false; 
    }); 
} 

function cloneInput(type) { 
    return cloneElement('input[type=' + type + ']'); 
} 

function cloneSelect() { 
    return cloneElement('select'); 
} 

編輯:好的,那麼:

$('a.AddNew').click(function(){ 
    var pool = $(this).closest('.addnew'); 
    var inputs = pool.find("input, select"); 
    inputs.first().clone().val('').insertAfter(inputs.last()); 
    return false; 
    }); 
+0

雖然div中的所有元素都是一種類型的id,但不知道它是哪種類型。我正在尋找一個廣義的代碼 – aWebDeveloper

+0

編輯是相當不錯的 – aWebDeveloper