如何使用 "contenteditable 1" 的 val 更新 "contenteditable 2" 和 "keyup" 事件?

How can I use val of "contenteditable 1" to update "contenteditable 2" with "keyup" event?

我正在努力解决我的问题:

<div id="editable-content">
<span id="static1" class="non-editable">1-800-</span>
<span class="edittext" id="block1" class="editable" placeholder="HELLO" contenteditable="true"autofocus></span>

<div id="editable-content">
<span id="static2" class="non-editable">1-800-</span>
<span class="edittext" id="block2" class="editable" placeholder="HELLO" contenteditable="true"autofocus></span>

我想在 keyup 事件中使用 #block1 的值来更新 #block2。 意思是:一旦用户键入 #block1,相同的文本就会同时出现在 #block2 中。

到目前为止,这是我的 JS,但它没有按照我的要求执行:

$( function() {
function updateTextarea() {
    $( '#block2' ).val( $( '#block1' ).val());
}
$( '#block1' ).keyup( updateTextarea );

});

我做错了什么?非常感谢您!!

更改此行:

$( '#block2' ).text( $( '#block1' ).text());

只有表单元素具有 value 属性,因此可以通过 javascript 或 jQuery 的 .val() 方法通过 .value 获取。

尽管 contenteditable 属性允许您在元素中输入文本,但这只是该元素的文本内容而不是值。

尝试使用它的示例代码希望这对您有所帮助。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>

<input type="text" id="ch1" value="" /><br/>
<input type="text" id="ch2" value="" />

<script>
$(document).ready(function(){
    $("#ch1").keyup(function(){
        var test = $("#ch1").val();
        $("#ch2").val(test);
    });
});
</script>

</body>
</html>