2011-11-18 118 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