如何使用 "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>
我正在努力解决我的问题:
<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>