如何正确捕获React.js中文本输入的change / focusOut事件?

时间:2016-06-03 08:00:16

标签: javascript reactjs

我有一个表单,我想在文本输入中处理更改事件,但是在按键时触发 onChange (与原生JS相反,当输入字段失焦时触发更改事件)。

是否有 React方式来做我想要的事情?

3 个答案:

答案 0 :(得分:77)

如果您只想在输入失去焦点时触发验证,则可以使用onBlur

答案 1 :(得分:3)

您需要小心,因为onBlur在IE11中有一些警告(How to use relatedTarget (or equivalent) in IE?https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/relatedTarget)。

但是,据我所知,在React中无法使用onFocusOut。如果您需要更多信息,请在他们的github https://github.com/facebook/react/issues/6410上查看问题。

答案 2 :(得分:1)

太晚了,但是值得您注意,浏览器级别的focusin和focusout事件的实现存在一些差异,并且对合成onFocus和onBlur做出反应。 focusin和focusout实际上会冒泡,而onFocus和onBlur不会。因此,到目前为止,对于reactin和focusout还没有完全相同的实现。无论如何,大多数情况都会在onFocus和onBlur中涵盖。