5

React를 사용하여 해결할 수없는 구성 요소의 문제점 1 개가 있습니다. 모든 것은 예상대로 작동하지만 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() 그러나 당신이 직면 할 수있다, 인터넷 익스플로러 11에서 잘 작동합니다 preventDefault()이 호출되지 않도록하는 오류/경고를 트리거하는 스크립트의 또 다른 문제점입니다.

F12를 사용하여 콘솔을 점검하고 JS 경고가 있는지 확인하는 것이 좋습니다.

관련 문제