2016-10-18 58 views
0

我已经做了一个输入框,我已经将此输入框克隆到一个div,让我们将它们命名为ipbox1和ipbox2,ipbox2是ipbox1的副本现在我想要做的是,当我输入/更改任何一个值其中,dom.value或$(“#id”)。val()应返回更新后的值。但现在它只能用ipbox2运行。 我该怎么办?如何影响原始输入框中的更改?

fiddle

$("#ghj").click(function(){ 
 
\t $("#abc").val("Some text"); 
 
\t $("#abc").clone(true).appendTo("#pastehere"); 
 
}) 
 
$("#abc").on('change',function(){ 
 
\t alert(); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type = "text" id = "abc">This is the first box 
 
<div id = "pastehere"> 
 

 
</div>This is the cloned box 
 
<br><button type = "button" id = "ghj"> 
 
Clone 
 
</button>

+0

当您执行'$(#id).val()'时,您将获得具有该ID的第一个元素的值。你能澄清我到底需要什么吗? – gschambial

+0

你可以在我的答案中查看你的问题更新的小提琴。 – gschambial

回答

0

如果你希望能够独立阅读的其中一方的值,然后看看这个fiddle

如果没有,那么我一定是脱轨。请添加你需要实现:)

HTML

<input type = "text" class = "abc">This is the first box 
<div id = "pastehere"> 

</div>This is the cloned box 
<br><button type = "button" id = "ghj"> 
Clone 
</button> 

JS

var initialInput = $(".abc"); 
$("#ghj").click(function(){ 
    initialInput.val("Some text"); 
    initialInput.clone(true).appendTo("#pastehere"); 
}) 
$(".abc").on('change',function(ev){ 
    var targetInput = $(ev.target); 
    alert('myValueIs:' + targetInput.val()) 
}); 
1

我有更新,你有什么更多的细节不甘示弱:https://jsfiddle.net/gschambial/s6td1bof/7/

var initVal = $('#abc').val(); 

$("#ghj").click(function(){ 
    $("#abc").val("Some text"); 
    $("#abc").clone(true).appendTo("#pastehere"); 
}) 
$("#abc").on('change',function(){ 
    alert(); 
    initVal = $(this).val(); 
}) 

$("#get").click(function(){ 
    alert(initVal); 
}) 
+0

与OP的代码相同,无效的标记。 – Christophe

+0

@Christophe你检查了小提琴吗? – gschambial

+0

绝对,我确认该标记无效(请参阅我的答案)。 – Christophe

1

你不应该追加一个带有id的克隆元素,因为这会创建无效的标记(两个具有相同id的html元素) 。

相关问题