我有 4 个输入文本字段,我想将它们复制到文本区域,我尝试做同样的事情,将每个副本复制到单独的文本输入字段,但这不起作用。
我的代码如下:
<fieldset>
<legend>Page Message:</legend>
<div class="textarey">
<input type="text" class="lookalike" id="message_text1" name="message_text1" onkeyup="copy_data(this); if(this.value.length>=24) document.editPage.message_text2.focus()" style="text-decoration:ltr;" value="<?php echo $page['message_text']; ?>" size="38" maxlength="24"><br>
<input type="text" id="message_text2" name="message_text2" maxlength="24" size="38" class="lookalike" style="text-decoration:ltr;" value="<?php echo $page['message_text']; ?>" onkeyup="copy_data(this); if(this.value.length>=24) document.editPage.message_text3.focus()"><br>
<input type="text" id="message_text3" name="message_text3" maxlength="24" size="38" class="lookalike" style="text-decoration:ltr;" value="<?php echo $page['message_text']; ?>" onkeyup="copy_data(this); if(this.value.length>=24) document.editPage.message_text4.focus()"><br>
<input type="text" id="message_text4" name="message_text4" size="42" class="lookalike" style="text-decoration:ltr;" value="<?php echo $page['message_text']; ?>" onkeyup="copy_data(this)">
</div>
<textarea id="message" /><?php echo $page['message']; ?></textarea>
从字段中复制的Javascript在这里:
function copy_data(val){
var messageText = document.getElementById(val.id).value
document.getElementById('message').innerHTML = messageText;
}
我的问题是,每次文本字段到达其 maxchars 的末尾时,它都会清除文本区域。有人在这里有什么想法吗?
谢谢
function copy_data(val){
var messageText = document.getElementById(val.id).value
document.getElementById('message').innerHTML += messageText;
}
但我建议不要使用内联 js。
<script type="text/javascript">
var text = "";
for(var x=1;x<=4;x++) {
text += document.getElementById("message_text"+x).value;
text += "'n";
}
document.getElementById("message").value = text;
</script>
- 您可以考虑创建一个函数,用于从您想要的任何输入复制到无论什么元素。
我的问题是,每次文本字段到达末尾时 maxchars 它清除文本区域。有人在这里有什么想法吗?
这是因为即使你到达maxchar的末尾,你仍然会继续打字。根据您的 javascript 函数,文本区域一次只会显示来自 4 个文本字段之一的数据。因此,移动字段 1 达到最大长度,字段 2 根据您的代码获得焦点。
onkeyup="copy_data(this); if(this.value.length>=24) document.editPage.message_text2.focus()"
因此,随着 field2 获得焦点,并且您继续键入,您的文本区域将变为空白并开始显示 field2 数据。