我们知道在输入时会触发很多事件。
,例如keyup,keydown,keypress或其他。
仅当文本字段中的内容发生更改时,是否还会触发其他事件?如果没有,如何写一些javasrcipt代码来完成这个功能
答案 0 :(得分:2)
change事件可能会有所帮助吗?
答案 1 :(得分:0)
我已经创建了一个简单的小提琴,用于确定当按键修改一个contenteditable元素中的文本节点时会发生什么。当我这样做时,我决定检查使用ibus时会发生什么,因为我使用ibus进行自己的工作。我确定当使用ibus时,生成的唯一键盘事件是一个which
值没有用的键盘事件。
这是我创造的小提琴:
http://jsfiddle.net/lddubeau/jWnL3/
去那个小提琴。
开启您的Javascript控制台。
点击运行。
点击“toto”一词的2dn和第三个字符。
使用ibus输入内容。例如,键入我。
输出因浏览器而异。在Chrome 29上,每次击键都被记录下来,所以如果我使用tonepy方法键入我,我会得到每个“w”“o”“3”和“1”的keyup和keydown。 (拼音,音调然后按1选择第一个选项。)最后的事件是:
event type: keyup
which: 229
keyCode: 229
charCode: 0
node value:
to我to
除了一些属于“keydown”类型之外,这个之前的事件都具有相同的值,当然节点值在最后一个事件之前显示“toto”。
在Firefox 23上只注册了一个事件:
"event type:" "keyup"
"which:" 49
"keyCode:" 49
"charCode:" 0
"node value:" "
to我to
"
没有生成keydown或keypress事件。 (在ascii范围内键入字符时,您会获得每个键的keydown,keypress和keyup。)
其值和keyCode似乎不对应任何合理的。我已经检查了传递给事件处理程序的事件对象,并没有看到任何表明用户只输入我的字段。