문제

이 JavaScript가 왜 양식이 제출되는 것을 막지 않는지 알아 내려고 노력하고 있습니다.

<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에서 동일한 결과를 경험하고 있습니다. 감사.

도움이 되었습니까?

해결책

매우 유용한 두 가지 답변의 정보를 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>

다른 팁

기능을 변경 한 것 같습니다

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

당신이 찾고있는 일을해야합니다.

원천

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

여기 그리고 여기.

<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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top