2009-06-08 11 views
7

false를 반환 :양식 내가이 자바 스크립트 제출되는 양식을 멈추지 않는 이유를 알아 내려고 노력하고있어

<form action="http://www.example.com" id="form"> 
    <input type="text" /> 
    <input type="submit" /> 
</form> 

<script> 
var code = function() { 
    return false; 
}; 
var element = window.document.getElementById("form"); 
if (element.addEventListener) { 
    element.addEventListener("submit", code, false); 
} 
</script> 

을 나는 폼에 다음 onsubmit 속성을 추가하지 않는 한 요소 :

<form action="http://www.example.com" id="form" onsubmit="return false"> 
    <input type="text" /> 
    <input type="submit" /> 
</form> 

<script> 
var code = function() { 
    return false; 
}; 
var element = window.document.getElementById("form"); 
if (element.addEventListener) { 
    element.addEventListener("submit", code, false); 
} 
</script> 

addEventListener 메소드와 마찬가지로 보이는 것이 트릭을 수행해야합니다. 이견있는 사람? 나는 Mac에있어 Safari, Firefox 및 Opera에서 동일한 결과를 경험하고 있습니다. 감사. 당신이

var code = function(e) { 
    e.preventDefault(); 
} 

으로 기능을 변경하는 경우 그것은 당신이 찾고있는 무엇을해야처럼

+0

중복 가능성을 [아직도 제출하여 addEventListener 허위 제출 반환 양식?] (http://stackoverflow.com/questions/4924036/return-false-on-addeventlistener-submit-still-submits-the-form) – unor

답변

8

는 Mac과 PC 모두에서 작동하는 솔루션으로 두 개의 매우 도움이 답변의 정보 결합 :의

<script> 
var code = function (eventObject) { 
    if (eventObject.preventDefault) { 
     eventObject.preventDefault(); 
    } else if (window.event) /* for ie */ { 
     window.event.returnValue = false; 
    } 
    return true; 
}; 
var element = window.document.getElementById("form"); 
if (element.addEventListener) { 
    element.addEventListener("submit", code, false); 
} else if (element.attachEvent) { 
    element.attachEvent("onsubmit", code); 
} 
</script> 
2

나는 당신이 찾고있는 것은 그것을 구현 브라우저의 Event 인터페이스의 preventDefault() 방법이라고 생각합니다. "return false"님이 예상 한대로 양식 제출을 취소합니다.

herehere.

<script type="text/javascript"> 
var code = function (evt) { 
      if (evt.preventDefault) { 
       evt.preventDefault(); 
      } 
      return false; 
}; 
window.onload = function() { 
    var element = window.document.getElementById("form"); 
    if (element.addEventListener) { 
     element.addEventListener("submit", code, false); 
    } 
}; 
</script>