5

面對我的組件無法使用React 15解決的一個問題。除IE 11外,其他一切都按預期工作。React不會阻止表單在IE中提交11

基本上看起來像IE 11是忽略了event.preventDefault()函數(以及下面代碼中的所有註釋函數,都嘗試過)並提交數據。頁面重新加載並且查詢參數在url中。我想阻止重新加載頁面並執行handleSubmit函數中的邏輯。

在渲染函數形式:

<form onSubmit={this.handleSubmit}> 
    <input ref="email" type="email" name="username" required></input> 
    <input ref="pass" type="password" name="pass"required></input> 
    <input type="submit" name="login" value="Login" /> 
</form> 

,這是hanleSubmit功能:

handleSubmit: function (event) { 

    event.preventDefault(); 
    //event.returnValue = false; 
    //event.stopPropagation(); 
    //event.nativeEvent.preventDefault(); 

    var email = this.refs.email.value; 
    var pass = this.refs.pass.value; 

    //return false; 
}, 
+0

嘗試用'event.preventDefault替換'event.preventDefault()'? event.preventDefault():(event.returnValue = false);'。我知道這是爲了IE8,但IE有時候是一個驚喜。 –

+0

試過這個,但沒有運氣。不管怎麼說,還是要謝謝你。 – Gjoshevski

+0

@Gjoshevski你最終找到了解決辦法嗎? –

回答

0

功能preventDefault()應該正常工作在的Internet Explorer 11,但是你可能會面臨腳本中的另一個問題會觸發導致preventDefault()不被調用的錯誤/警告。

我建議使用F12檢查控制檯,看看是否有一些JS警告。