1

onPropertyChange只在IE中工作。我曾经onPropertyChange在一个文本框中输入一些文本,同时在另一个文本框中显示相同的文本。有没有其他方法可以解决这个问题?

HTML:

<input type="text" id="firstName" name="firstName" value="" maxlength="64"size="30" class="controlStyle" onPropertyChange="displayName(this, document.frmSkills.EmpLn, document.frmSkills.EmpDn,displayFormat)">
4

2 回答 2

1

其他浏览器支持任何文本输入事件(oninput)上的事件。

您还需要处理这两个事件以涵盖 IE。

textelement.addEventListener('input',function,false)) 或 textelement.oninput=

这是来自: http ://help.dottoro.com/ljhxklln.php

从版本 9 开始,Internet Explorer 支持 oninput 事件,但 Internet Explorer 9 中的 oninput 事件有问题

如果您想检测 textarea、input:text、input:password 或 input:search 元素的内容何时发生更改,oninput 很有用,因为这些元素上的 onchange 事件会在元素失去焦点时触发,而不是在修改后立即触发. 从版本 9 开始,Internet Explorer 支持 oninput 事件。如果您需要在版本 9 之前的 Internet Explorer 中修改这些元素的内容时触发的事件,请使用 onpropertychange 事件。

oninput 事件在 Internet Explorer 9 中存在缺陷。仅当插入字符时,才通过用户界面从文本字段中删除字符时不会触发该事件。虽然 Internet Explorer 9 支持 onpropertychange 事件,但与 oninput 事件类似,它也有问题,它不会在删除时触发。由于可以通过多种方式删除字符(Backspace 和 Delete 键、CTRL + X、上下文菜单中的 Cut 和 Delete 命令),因此没有很好的解决方案来检测所有更改。如果通过上下文菜单的 Delete 命令删除字符,则 Internet Explorer 9 中的 JavaScript 无法检测到修改。始终使用 Internet Explorer 9 中的 addEventListener 方法为 oninput 事件注册事件侦听器。attachEvent 方法不适用于 oninput 事件。

于 2012-12-13T13:59:48.183 回答
1

我得到了上述问题的解决方案,下面是代码。谢谢大家的友好回复。

window.onload=function() {
  document.getElementById("textarea_one").onkeyup=function() {     
      document.getElementById("textarea_three").value=this.value+ " "+document.getElementById("textarea_two").value;
  }
  document.getElementById("textarea_two").onkeyup=function() {     
      document.getElementById("textarea_three").value=document.getElementById("textarea_one").value+" "+this.value;
  }
} 
于 2012-12-13T16:13:18.133 回答