Javascript 对输入作出反应-IE9/10 event.target.value是否为空?

Javascript 对输入作出反应-IE9/10 event.target.value是否为空?,javascript,reactjs,internet-explorer-9,internet-explorer-10,Javascript,Reactjs,Internet Explorer 9,Internet Explorer 10,当“onInput”用作监听事件时(IE9/10中的),简单受控输入不会基于用户输入更新值。“onChange”可以正常工作,但“onInput”已被选为我们的活动,以解决在IE11中粘贴值的问题 class TestComp extends React.Component { constructor(props){ super(props); this.state = { value: "" }; this.updateValue = this.updateValu

当“onInput”用作监听事件时(IE9/10中的),简单受控输入不会基于用户输入更新值。“onChange”可以正常工作,但“onInput”已被选为我们的活动,以解决在IE11中粘贴值的问题

class TestComp extends React.Component {
  constructor(props){
    super(props);
    this.state = { value: "" };
    this.updateValue = this.updateValue.bind(this);
  }

  render(){
    return <input onInput={this.updateValue} value={this.state.value} />;
  }

  updateValue(evt){
    this.setState({ value: evt.target.value });
  }
};
类TestComp扩展了React.Component{ 建造师(道具){ 超级(道具); this.state={value::}; this.updateValue=this.updateValue.bind(this); } render(){ 返回; } 更新值(evt){ this.setState({value:evt.target.value}); } };


这是否是受控输入的不当实现?如果是,如何解决?如果没有,还有什么替代方案?

我仍然会使用
onChange
,尽管我现在无法测试它,但我听说
onInput
与IE9有一些问题。 根据React文件:

对于
onChange
将取代-并且通常应使用它来代替DOM内置的
oninput
事件处理程序

在IE11中为
onChange
创建一个修复程序,而不是使用其他侦听器,怎么样? 一个黑客,虽然我不建议这样做,但可能同时使用
onChange
onInput
。请记住,Chrome将触发这两个调用,因此我建议仅当
userAgent
匹配时才传递
onInput


我还发现这个修复了其中一些问题(包括删除、清除、剪切值)的polyfill无法测试它,不过:。

谢谢你的回答。你建议我回到onChange,这是我昨天提出的建议,不过IE11粘贴()的方法略有不同。这对我有用:)