2017-01-05 73 views
0

我想將輸入字段的值添加到屬性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/

任何想法如何,我可以解決這個問題?

+0

歡迎來到Stack Overflow。預期問題是自我包含的,而不僅僅是與外部資源的鏈接,所以當鏈接斷裂時它們仍然有用。這次我爲你編輯了這個問題。 –

回答

3

使用clone(true):如果您沒有設置該參數withDataAndEvents作爲

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

事件處理程序將不會被克隆true,見th e doc here:https://api.jquery.com/clone/

+0

謝謝,修好了! – Reza

3

$('input')只會檢測頁面加載時出現的輸入。克隆人將不會聽取關鍵事件。

而不是

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

使用

$('.cpt_area').on('keyup', 'input', function(ev){ 
    $(this).attr('data-value', $(this).val()); 
}); 
+0

謝謝,那也幫助了我! – Reza