添加属性不适用于克隆元素

时间:2017-01-05 10:19:56

标签: javascript jquery

我想将输入字段的值添加到属性data-value的值中。这实际上有效,但我有一个生成新字段的按钮。因此,可以将值添加到第一个输入字段,但不能添加到通过单击按钮生成的值。

<button id="another_field">Add a new field</button>

<div class="cpt_area">
  <input placeholder="Type something here..." class="full_width cpt_name" type="text" name="cpt_name[]">
</div>
// This will copy an input field
$('#another_field').click(function() {
  $('.cpt_name:first').clone().prependTo(".cpt_area").val('');
});

// This will generate a data-value attribute
$('input').keyup(function() {
  $(this).attr('data-value', $(this).val());
});

您可以在此处试用:https://jsfiddle.net/e6ybk2d3/

我有什么想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

import 'bootstrap/dist/css/bootstrap.css';只会检测页面加载时的输入。克隆人不会听取密钥事件。

而不是

$('input')

使用

$('input').keyup(function() {
  $(this).attr('data-value', $(this).val());
});

答案 1 :(得分:3)

使用clone(true)

$('.cpt_name:first').clone(true)

如果您未将参数withDataAndEvents设置为true,则不会克隆

事件处理程序,请参阅此处的文档:https://api.jquery.com/clone/