克隆/添加新表单字段

时间:2011-11-18 10:47:12

标签: javascript jquery

<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>

1 个答案:

答案 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;
  });
相关问题