2017-12-26 66 views
0

누군가가 게시 한 코드를보고 있었는데 왜 그가 preventDefault를 사용했는지 모르겠습니다. 아무도 그 이유를 말할 수 있습니까?자바 스크립트 : 왜 여기에 preventDefault를 사용 했나요?

대단히 감사합니다. https://codepen.io/Sylvia31/pen/eygvVm

form.addEventListener('submit', function (e) { 

    **e.preventDefault();** 

    responseContainer.innerHTML = ''; 
    searchedForText = searchField.value; 
    const imgRequest = new XMLHttpRequest(); 
    imgRequest.onload = addImage; 
    imgRequest.onerror = function (err) { 
     requestError(err, 'image'); 
    }; 
+1

브라우저가 양식을 제출하지 못하도록하는 것입니다. – Pointy

+0

@ Pointy하지만 브라우저가 양식 제출을 막아야하는 이유는 무엇입니까? – Sylvia

+1

아마도 제출 작업이 페이지를 다시로드하기 때문에 –

답변

0

기본적에서 preventDefault 취소 또는 이벤트의 정상적인 동작을 중지하는 데 사용됩니다. 제출 버튼이 전송되지 못하도록하거나 링크가 리디렉션되지 않도록하는 것과 같습니다.

여기에서는 preventDefault를 사용하여 체크 박스가 제출되지 않도록 할 수있었습니다.

2

당신은 Event.preventDefault() MDN Reference에서 볼 수 있습니다

preventDefault() 방법은 이벤트가 명시 적으로 처리되지 않는 경우 정상적으로 될 것으로, 기본 조치가 취해되어서는 안된다는 사용자 에이전트를 알려줍니다.

그리고 양식을 제출 버튼을 클릭의 기본 동작은 submit 형태로하고 양식에 정의 된 작업 페이지로 사용자를 리디렉션 것입니다, 그리고를 중지 할 수 있습니다 submit 이벤트 처리기에서 preventDefault()의 사용과

양식 제출.

e.preventDefault()은 여기에서 양식 기본 제출 동작을 중지하고 다른 코드 블록 (이 경우 XMLHttpRequest)을 실행하는 데 사용됩니다.