<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 tag。
在上面的代码行中,3-6将改为如下
<input name="data[Configuration][value][]" value="neat" type="url">
或
<input name="data[Configuration][value][]" value="neat" type="tel">
或
<select></select>
答案 0 :(得分: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;
});