#jquery #forms #submit
#jquery #формы #Отправить
Вопрос:
Мне нужно проверить форму перед отправкой, но мне нужно перебрать некоторые входные данные. Если входные данные недопустимы, мне нужно вернуть false и остановить отправку, однако, поскольку тест выполняется во вложенной функции each(), он не возвращает false во внешней функции submit():
$("#my_form").submit(функция() { $("#my_form .my_text_inputs").each(функция() { if ($(this).val() == "неверное значение") { предупреждение ("Ввод был неверным"); возвращает false; } }); возвращает true; });
Мое решение таково:
$("#my_form").submit(функция() { var _bSubmitTheForm = true; $("#my_form .my_text_inputs").each(функция() { if ($(this).val() == "неверное значение") { предупреждение ("Ввод был неверным"); _bSubmitTheForm = false; возвращает false; } }); верните _bSubmitTheForm; });
…есть ли более элегантный способ сделать это?
Спасибо
Ответ №1:
return false
изнутри $.each
произойдет выход из цикла each. Итак, вы все еще хотите вернуться туда для оптимизации.
Кроме того, я бы рекомендовал использовать jQuery validate для достижения того же результата.