什么时候不会触发 textarea 更改事件?

Pau*_*gar 5 javascript jquery dom backbone.js

每当 textarea 的内容发生变化时,我都依赖于触发 change 事件。根据jquery docs,直到 textarea 失去焦点才会触发。什么情况下不能触发事件?关闭页面、返回、单击链接等是否总是会导致 textarea 失去焦点并被触发?

或者换句话说,是否可以在没有焦点文本区域丢失输入的情况下离开页面?

Ati*_*nux 3

通过不同的测试,在以下情况下不会触发更改事件:

  • 用户单击浏览器的任何按钮(后退按钮、刷新、主页按钮...)(Linux 上的 Chrome、Firefox amd Opera,但在单击地址栏时触发)
  • 用户使用快捷键(f5、ctrl+u...)(在 Chrome + Firefox + Opera 上测试)

您可以在此处测试示例:http ://jsfiddle.net/Atinux/S6TkP/

因此,我建议您在输入和文本区域表单上另外使用 keyUp 和 keyDown 事件。