Ler*_*nzi 0 html javascript onkeyup
我想要一个输入框,用户可以在其中添加或更改文本,同时(或在完成之后),我想要更新div中的文本,使用刚刚输入的文本.
这是我使用的代码
JAVASCRIPT:
<script language="javascript" type="text/javascript">
function change(boxid,divtoaffect) {
content = document.getElementById("" + boxid + "").value;
document.getElementById(divtoaffect).innerHTML = content;
}
</script>
Run Code Online (Sandbox Code Playgroud)
HTML:
<table border="0" cellpadding="5" cellspacing="0" style="border-bottom:1px solid black; border-right:1px solid black; border-left:1px solid black; border-top:1px solid black" width="50%">
<tr>
<td >Name:<br/><input type="text" id="text1" onKeyPress="change('text1','output1')" /></td>
<td valign="bottom"><div id="output1" style="font-weight:bold;height:20px;"></div></td>
</tr>
<tr>
<td>Designation:<br/><textarea id="text2" rows="1" onKeyPress="change('text2','output2')"></textarea></td>
<td valign="bottom"><div id="output2" style="height:40px;"></div> </td>
</tr>
<tr>
<td>Address:<br/><textarea id="text3" rows="2" onKeyPress="change('text3','output3')"></textarea></td>
<td valign="bottom"><div id="output3" style="height:50px;"></div></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当我在文本框中键入第二个单词时,它会更新DIV,即当我键入单个单词时,它不会显示在DIV中,当我键入第二个单词时,它会显示DIV中的第一个单词.


而且当我在Textarea字段中按Enter键时,在DIV中它继续在同一行.这是图像

而不是onKeyPress,使用该onKeyUp事件
编辑:扩展的问题.
您需要将回车符(+换行符)转换为<br />标签.像下面的东西(在行尾替换)
function change(boxid,divtoaffect) {
content = document.getElementById("" + boxid + "").value.replace(/\n/g, '<br>');
document.getElementById(divtoaffect).innerHTML = content;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您可能需要替换\r\n(回车+换行)而不是\n(换行).以下示例
content.replace(/\r\n/g, '<br>');
content.replace(/\n/g, '<br>');
Run Code Online (Sandbox Code Playgroud)