<!DOCTYPE html> <html> <head> <title>同步显示</title> <meta charset="utf-8"> </head> <body> <div> <input type="text" name="user_input"> <span id="content">你输入的内容是:</span> </div> <script type="text/javascript"> var de = document.getElementById("content"); var txt = de.innerHTML; document.getElementsByTagName("input")[0].oninput = function () { document.getElementById("content").innerHTML = txt+this.value; } </script> </body> </html>
1,这里使用input的text类型,oninput事件会在文本框获得焦点期间处于持续触发状态,直到失去焦点。
2,若使用onchange事件,会在输入完成后按下回车,或者点一下其他位置才会触发,说明onchange事件在文本框获得焦点时就绪,在失去焦点时才触发,所以不能实现在每输入一个新字符时将内容同步到span标签内。
ps:如果写成:
document.getElementById("content").innerHTML += this.value;
这行代码会导致文本框的值反复的被添加到span,所以提前声明一个txt,保存初始值,写成如下
document.getElementById("content").innerHTML = txt+this.value;
本文深入探讨了HTML中实时文本同步的实现方式,通过oninput事件而非onchange事件,确保了用户输入的每个字符都能即时反映在页面上,提高了用户体验。文章详细分析了两种事件的触发机制,并给出了具体代码实例。
378

被折叠的 条评论
为什么被折叠?



