[javascript] 양식 제출을 중지하는 JavaScript 코드

양식 제출을 중지하는 한 가지 방법은 JavaScript 함수에서 false를 반환하는 것입니다.

제출 단추를 클릭하면 유효성 검증 기능이 호출됩니다. 양식 유효성 검사에 대한 사례가 있습니다. 해당 조건이 충족되면 returnToPreviousPage () 라는 함수를 호출합니다 .

function returnToPreviousPage() {
    window.history.back();
}

JavaScript와 Dojo Toolkit을 사용하고 있습니다.

이전 페이지로 돌아가서 양식을 제출합니다. 이 제출을 중단하고 이전 페이지로 돌아가려면 어떻게해야합니까?



답변

함수의 반환 값을 사용하여 양식 제출을 막을 수 있습니다

<form name="myForm" onsubmit="return validateMyForm();"> 

그리고 같은 기능

<script type="text/javascript">
function validateMyForm()
{
  if(check if your conditions are not satisfying)
  { 
    alert("validation failed false");
    returnToPreviousPage();
    return false;
  }

  alert("validations passed");
  return true;
}
</script>

Chrome 27.0.1453.116 m의 경우 위의 코드가 작동하지 않으면 이벤트 핸들러의 매개 변수 returnValue 필드를 false로 설정하여 작동 시키십시오.

정보를 공유해 주셔서 감사합니다.

편집하다 :

validateMyForm ()이 false를 반환하는 경우에 대한 해결 방법으로 Vikram에 감사합니다.

 <form onsubmit="event.preventDefault(); validateMyForm();">

여기서 validateMyForm ()은 유효성 검사에 실패하면 false를 반환하는 함수입니다. 요점은 이름 이벤트를 사용하는 것입니다. egepreventDefault ()에는 사용할 수 없습니다


답변

예방 기본 사용

Dojo 툴킷

dojo.connect(form, "onsubmit", function(evt) {
    evt.preventDefault();
    window.history.back();
});

jQuery

$('#form').submit(function (evt) {
    evt.preventDefault();
    window.history.back();
});

바닐라 자바 ​​스크립트

if (element.addEventListener) {
    element.addEventListener("submit", function(evt) {
        evt.preventDefault();
        window.history.back();
    }, true);
}
else {
    element.attachEvent('onsubmit', function(evt){
        evt.preventDefault();
        window.history.back();
    });
}


답변

다음은 현재 작동합니다 (Chrome 및 Firefox에서 테스트).

<form onsubmit="event.preventDefault(); validateMyForm();">

여기서 validateMyForm ()은 false유효성 검사에 실패하면 반환되는 함수입니다 . 핵심은 이름을 사용하는 것 event입니다. 예를 들어 사용할 수 없습니다 e.preventDefault().


답변

button제출 버튼 대신 간단한 것을 사용하십시오 . 그리고 양식 제출을 처리하기 위해 JavaScript 함수를 호출하십시오.

<input type="button" name="submit" value="submit" onclick="submit_form();"/>

script태그 내 기능 :

function submit_form() {
    if (conditions) {
        document.forms['myform'].submit();
    }
    else {
        returnToPreviousPage();
    }
}

시도해 볼 수도 있습니다 window.history.forward(-1);


답변

쉬운 일을하는 많은 어려운 방법들 :

<form name="foo" onsubmit="return false">


답변

모든 대답은 함께 할 일을주었습니다.

마지막으로, 이것은 나를 위해 일했습니다 : (적어도 하나의 확인란 항목을 선택하지 않으면 경고와 동일한 페이지에 유지됩니다)

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <form name="helloForm" action="HelloWorld" method="GET"  onsubmit="valthisform();">
            <br>
            <br><b> MY LIKES </b>
            <br>
            First Name: <input type="text" name="first_name" required>
            <br />
            Last Name: <input type="text" name="last_name"  required />
            <br>
            <input type="radio" name="modifyValues" value="uppercase" required="required">Convert to uppercase <br>
            <input type="radio" name="modifyValues" value="lowercase" required="required">Convert to lowercase <br>
            <input type="radio" name="modifyValues" value="asis"      required="required" checked="checked">Do not convert <br>
            <br>
            <input type="checkbox" name="c1" value="maths"     /> Maths
            <input type="checkbox" name="c1" value="physics"   /> Physics
            <input type="checkbox" name="c1" value="chemistry" /> Chemistry
            <br>

            <button onclick="submit">Submit</button>

            <!-- input type="submit" value="submit" / -->
            <script>
                <!---
                function valthisform() {
                    var checkboxs=document.getElementsByName("c1");
                    var okay=false;
                    for(var i=0,l=checkboxs.length;i<l;i++) {
                        if(checkboxs[i].checked) {
                            okay=true;
                            break;
                        }
                    }
                    if (!okay) {
                        alert("Please check a checkbox");
                        event.preventDefault();
                    } else {
                    }
                }
                -->
            </script>
        </form>
    </body>
</html>


답변

@Vikram Pudi 답변을 기반으로 순수한 Javascript로도 이와 같이 할 수 있습니다

<form onsubmit="submitForm(event)">
    <input type="text">
    <input type="submit">
</form>

<script type="text/javascript">

    function submitForm(event){
        event.preventDefault();


    }
</script>