2016-08-19 27 views
3

IE11 uses onInput instead of onChange for <input type='range'>元素。反應範圍輸入IE11 onChange或onInput解決方法

反應does not call either of these在IE11中。

onChange適用於FF,Chrome和Edge,所以沒關係。

繼兔子洞向下導致herehere,使用onMouseUponClick這表明,但我還沒有得到這方面的工作無論是。

我試過各種聽衆組合無濟於事。我甚至試過this(當然也沒有工作)。有人對此有一個解決方法嗎?

回答

1

經過一番挖掘,我已經解決了react-range,因爲它是輕量級,簡單和有效的。

在其sourcerender()展示它是如何做的:

render: function() { 
    var props = _extends({}, this.props, { 
     defaultValue: this.props.value, 
     onClick: this.onRangeClick, 
     onKeyDown: this.onRangeKeyDown, 
     onMouseMove: this.onRangeChange, 
     onChange: function() {}, 
     ref: this.setRangeRef 
    }); 
    delete props.value; 
    return React.createElement(
     'input', 
     props 
    ); 
    } 

更新

看來這將是固定在陣營16:https://github.com/facebook/react/issues/554#issuecomment-271579096

如果您看看上面的歷史,你會的這個問題已經被#5746封閉了。 如果你打開這個PR,你會看到它的里程碑設置爲16.

所以修復將在16,我們不能把它放在15.x,因爲它引入了行爲的突變。

我不知道是否有可能將其恢復到15.x. @jquense和@nhunzaker可能會回答這個問題。

相關問題