Как отключить отправку формы при возникновении ошибки?

0

У меня есть форма, которая собирает пользовательские данные и вставляет их в базу данных. Перед отправкой данные проверяются, и после отправки окно закрывается. Я использую try/catch для обработки ошибок, поэтому, когда есть ошибка, я не хочу, чтобы окно закрывалось.

Это выглядит так:

<form target="_self"  method="post" id = "questionnaire" class="validate" onsubmit="submit();window.close()">

По существу, что я пытаюсь сделать, это если есть ошибка onsubmit = ""

благодаря

  • 0
    <form onSubmit = "return false; submit ();"> Таким образом, внутри вашего метода submit () вы можете инициировать, если он действителен.
  • 1
    @Rottingham - Таким образом, функция отправки никогда не будет вызываться.
Показать ещё 1 комментарий
Теги:
forms
form-submit

2 ответа

2
Лучший ответ

Вам необходимо обработать событие submit вашей формы и отменить отправку.

Здесь DEMO

Unobruustive Javascript без jQuery

//Get the form element.
var form = document.getElementById('questionnaire');

//Declare your event handler
var onMyFormSubmit = function (e) {
    e = e || window.event; //Get the event if it not passed in.

    if (!valid) { //Do your validation here.
        e.returnValue = false;
        e.preventDefault();
        return false;
    }
};

//Attach an event handler to the submit event.
if (form.addEventListener) {
    form.addEventListener('submit', onMyFormSubmit, false);
} else {
    form.attachEvent('onsubmit', onMyFormSubmit);
}
  • 0
    +1 за ванильность
  • 0
    Это впечатляет, но почему так? Это более совместимо с браузером?
Показать ещё 1 комментарий
2

Как это:

<script type="text/javascript">
function submit()
{
    // do error checking
    if ( /*passes*/ )
        return true;
    else
        return false;
}
</script>

<form target="_self"  method="post" id="questionnaire" class="validate" onsubmit="return submit();">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню