Один из способов остановить отправку формы — вернуть false из вашей функции JavaScript.

, если пользовательский returnToPreviousPage () ;

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

Я использую JavaScript и В случае Chrome 27.0.1453.116 m, если приведенный выше код не работа, пожалуйста Глядя на вывод

Вместо того, чтобы вернуться на предыдущую страницу, он отправляет форму. Как я могу прервать эту отправку и вернуться на предыдущую страницу?

Спасибо Сэм за то, что поделился информацией.

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

Спасибо Викраму за обходной путь, если validateMyForm () возвращает false:

<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>

Использовать предотвращение по умолчанию установить параметр обработчика события returnValue Сразу после точки с запятой в коде есть невидимый символ. Это

Vanilla JavaScript

РЕДАКТИРОВАТЬ:

На данный момент работает следующее (проверено в Chrome и Firefox):

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

где validateMyForm () — это функция, которая возвращает false в случае сбоя проверки. Ключевым моментом является использование имени события. Мы не можем использовать, например, для e.preventDefault ()

при проверке выходит из строя. Ключевым моментом является использование имени

инструментария 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();
    });
}

Просто используйте простую

<form onsubmit="event.preventDefault(); 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);

Все ваши ответы дали что-то для работы.

И, наконец, это сработало для меня: (если вы не выбрали хотя бы один элемент-флажок, он предупреждает и остается на той же странице)

<!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>

Тогда вы можете использовать

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

Я бы порекомендовал не использовать onsubmit, и вместо этого прикрепляет событие в сценарии.

var submit = document.getElementById("submitButtonId");
if (submit.addEventListener) {
  submit.addEventListener("click", returnToPreviousPage);
} else {
  submit.attachEvent("onclick", returnToPreviousPage);
}

Затем используйте preventDefault() (или returnValue = false для старых браузеров).

function returnToPreviousPage (e) {
  e = e || window.event;
  // validation code

  // if invalid
  if (e.preventDefault) {
    e.preventDefault();
  } else {
    e.returnValue = false;
  }
}

Ответы Хеманта и Викрама не совсем сработали для меня в Chrome. Сценарий event.preventDefault () ; препятствовал отправке страницы независимо от того, прошла или не прошла проверку. Вместо этого мне пришлось переместить event.preventDefault () ; в оператор if следующим образом:

    if(check if your conditions are not satisfying) 
    { 
    event.preventDefault();
    alert("validation failed false");
    returnToPreviousPage();
    return false;
    }
    alert("validations passed");
    return true;
    }

Спасибо Хеманту и Викраму за то, что поставили меня на правильный путь.

Допустим, у вас есть форма, подобная этой

<form action="membersDeleteAllData.html" method="post">
    <button type="submit" id="btnLoad" onclick="confirmAction(event);">ERASE ALL DATA</button>
</form>

Вот javascript для функции verifyAction

<script type="text/javascript">
    function confirmAction(e)
    {
        var confirmation = confirm("Are you sure about this ?") ;

        if (!confirmation)
        {
            e.preventDefault() ;
            returnToPreviousPage();
        }

        return confirmation ;
    }
</script>

Этот работает на Firefox, Chrome, Internet Explorer (край), Safari и т. Д.

Если это дело не в этом, дайте мне знать

Например, если у вас есть кнопка отправки в форме, чтобы остановить ее распространение, просто напишите event.preventDefault () ; в функции, которая вызывается при нажатии кнопки «Отправить» или кнопки «Ввод».

Просто сделайте это ….

<form>
<!-- Your Input Elements -->
</form>

и вот ваш JQuery

$(document).on('submit', 'form', function(e){
    e.preventDefault();
    //your code goes here
    //100% works
});