Javascript 对输入作出反应-IE9/10 event.target.value是否为空?
当“onInput”用作监听事件时(IE9/10中的),简单受控输入不会基于用户输入更新值。“onChange”可以正常工作,但“onInput”已被选为我们的活动,以解决在IE11中粘贴值的问题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
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粘贴()的方法略有不同。这对我有用:)