2015-04-04 4 views
0

Так что я это JQuery для моей формы:Как правильно проверить форму с помощью jQuery?

frm.submit(function(event) { 

    validateForm(); 

    if(validateForm()) { 
    $(this).submit(); 
    } else { 
    event.preventDefault(); 
    } 

}); 

Он делает вид работы, но я получаю JS <error> (и это не что-нибудь еще в консоли об этом не говорят), я думаю, что причина в том, что функция должна снова пройти проверку? Вид похож на круговую зависимость.

Можете ли вы показать мне лучший способ сделать то, что я пытаюсь достичь здесь, пожалуйста?

  1. Подтвердить и показать ошибки, если они ошибочны;
  2. Отправить форму, если все нормально
+0

Существует плагин проверки формы jquery, который обрабатывает много всего этого для вас! http://jqueryvalidation.org/ – DevlshOne

ответ

0

Что-то вроде этого, может быть?

HTML -

<input type="text" id="name" /> 
<input type="tel" id="phone" /> 
<div id="submit">Submit</div><br> 
<div id="errors"></div> 


JS -

var user = {} 

$('#submit').click(function(){ 
    // validating form 

    if(!$('#name').val()) { 
     $('#errors').text('invalid value in "name" field') 
     return false; 
    }  

    if(!$('#phone').val()) { 
     $('#errors').text('invalid value in "phone" field') 
     return false; 
    } 

    $('#errors').text(''); 
    user.phone = $('#phone').val(); 
    user.name = $('#name').val(); 

    // form submission goes here 

}); 

Логика -
когда функция возвращает ничего (истина, ложь, строка, то имя его), выполнение чего-либо еще после самого возвращения не допускается.
Если вы не используете какой-либо возврат, функция по умолчанию возвращает true, что означает, что JS-код будет продолжать следующую функцию \ declare.

Это дает вам возможность манипулировать элементами и обрабатывать ошибки непосредственно перед возвратом false и прекращением продолжения работы функции.

0
function validateForm(){ 
if (input.val().isok && select.val().ispresent){ 
    form.submit(); 
}else{ 
    show_errors(); 
} 
} 

почему не так?

+0

В какой момент вы называете эту функцию? – Xeen

+0

on кнопка.click + ключ down (ввод) – Legendary

Смежные вопросы