JQuery Остановить форму Отправить - PullRequest
1 голос
/ 24 мая 2011

Я только что собрал красивую форму, которая заняла у меня несколько часов, с некоторой хорошей проверкой jQuery focusout.Атрибут focusout прикрепляется к полям ввода onload.Затем я снова использую свои функции проверки, вызывая событие focusout при отправке, но я не знаю, как отключить отправку формы в случае сбоя какой-либо из моих функций проверки.Полный пример здесь (jsfiddle)

Пример сокращения:

addLoadEvent (AttachVal);

функция AttachVal () {

  $('input[name="FirstName"]').focusout(NameTest);
  $('input[name="LastName"]').focusout(NameTest);
  $('form[name="Register"]').submit(SubmitRegForm);

}

функция SubmitRegForm () {

  $('input[name="FirstName"]').trigger('focusout');
  $('input[name="LastName"]').trigger('focusout');
  alert ("Submitting");       

return false;
}

Функция проверки:

function NameTest(){

var result = true;          
var EnteredValue = $(this).val();
var alphaExp = /^[a-zA-Z ]+$/;

    if (!(EnteredValue.match(alphaExp)))
    {
        var result = "Invalid"; 
    }   

    if (result !== true)
    {
        $(this).parent().next().children('span.ErrorDescript').text(result);
    }
    else
    {           
        $(this).parent().next().children('span.ErrorDescript').text("");        
    }

}

Я пытался прикрепить переменную в функции SubmitRegForm следующим образом:

var FNStat = $('input[name="FirstName"]').trigger('focusout');

с целью проверить их все и отправить, если они все возвращают true, но это простовозвращает объект.Можно ли получить текст ответа от этой функции? ... может быть?Или есть другой способ принудительно остановить событие Submit, которое в настоящее время выполняется из моих индивидуальных функций проверки?

Как всегда, любой совет очень ценится.

Dan

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Правильный способ поймать отправку формы:

$('#form').submit(function(e){
    // Unfocus and validation logic here.
    e.preventDefault();
});

e.preventDefault() остановит отправку формы.

1 голос
/ 24 мая 2011

Вот обновленная скрипка. То, что я сделал, было в возвращении метода SubmitRegForm (), просто посмотрите, сколько тиковых изображений видно, и если оно равно нулю, отправьте форму.

...