2011-08-15 4 views
3
<button onclick="alert('Hello'); return false;">Hello</button> 

반환 할 잘못된 부분은 무엇입니까? 또한, 거기에 있다면 진정한 것을 되돌릴 것입니까?인라인 이벤트 처리기 다음에 false를 반환하고 true를 반환하는 이유는 무엇입니까?

+0

을 입력 정의하여이를 방지 할 수 반환 거짓 아무것도 – Grigor

+0

@Grigor 변경되지 않습니다, 버튼이 그것을하지 않고 있기 때문에 폼 내부에있는 경우 것 네 버튼은 IE가 아닌 다른 브라우저에서 양식 제출 버튼 역할을합니다. –

+0

나는 그것을 알 것이다. 그러나 내가 말했듯이,이 경우에는 형태가 아니기 때문에 아무것도 바뀌지 않을 것이다. – Grigor

답변

5

default button typesubmit이므로 <button><button type="submit"> (IE 제외)과 동일합니다. return false은 기본 단추 작업을 중지하므로 양식 제출이 중단되지 않습니다.

버튼이 경우 명시 적으로

<button type="button" onclick="alert('Hello');">Hello</button> 
+0

절대 알지 못했습니다. 정보 주셔서 감사합니다. – 0x499602D2

7

return falseonclick 이벤트의 기본 동작을 무시합니다. 사용자가 팝업을 얻을 것이라고하지만 실제로 링크의 대상을 갈 것입니다 링크를 클릭 할 때

<a href="http://stackoverflow.com" onclick="alert('Hello'); return false">Link<a> 

: 그래서, 예를 들어, 당신은 링크를했다.

+0

아무 것도하지 않을 것입니다. 어쨌든. 'return false'는 제출 또는 재설정 버튼으로 만 의미가 있습니다. – nfechner

+0

@nfechner 또는 링크 또는 onclick에 대한 기본 동작이있는 다른 것. –

+0

와우, 나는 event.preventDefault() 만 생각했다. 작동 할 것이다. – 0x499602D2

0

상황에 따라 다릅니다.

예를 들어 제출 버튼에서 true | false를 입력하면 양식 유효성 검사에 사용할 수있는 양식을 제출하거나 제출하지 않습니다. 즉, 유효성 검사가 실패하면 양식을 제출하고 양식을 제출하지 못하게합니다.

대부분의 경우 예를 들어 코드 예제의 단추가 retirn 값에 아무런 영향을주지 않습니다.

+0

@ MikeSamuel의 대답을 참조하십시오. – 0x499602D2

관련 문제