Как проверить все атрибуты всех инпутов
Доброго времени.
Есть форма. Нужно проверить, заполнены ли все поля или нет. Мысль: если хотя бы один из $('input').attr('value') == " ", то совершить действие. Как это грамотно реализовать? |
имхо по each http://jquery.page2page.ru/index.php...BE%D1%80%D0%B0
Если $(this)=='', то stop=1 Если stop==1, то "заполните все поля" Как-то так, но я предпочитаю проверять каждое поле, хотя бы потому, что мыло не может содержать симвлов русского алфавита, тчк-с-зпт и т.д. |
val()
Позволяет получить значение атрибута value у элементов input, textarea, select. Для элементов select и checkbox нужно использовать селекторы :selected и :checked. function notEmptyInput(){ $('input').each(function(i) { if ($(this).attr('value') != " ") {return true ;} }); Проверяешь если функция вернула True то значит еще есть не заполненное поле. |
$(this).attr('value') ??????
$(this).val() достаточно |
для конкретной формы через serialize, создается объект со всеми инпутами формы.
|
Спасибо! помогли сделать вот так:
$('#form_1 input').each(function(i) { if ($(this).val()!= "") { return true; } else { $(this).after('<span style="color:red">заполните поле правильно</span>'); } }); А как теперь сделать чтобы если все поля заполнены, происходило действие? |
СДелал так:
var a=true; $('#form_1 input').each(function(i) { if ($(this).val()!= "") { } else { $(this).after('<span style="color:red">заполните поле правильно</span>'); a=false; } }); if (a){ $('#form_1').fadeOut(); $('#form_2').fadeIn(); } Можно ли проще? Но вообще не обязательно. Этого достаточно! Спасибо всем большое |
if ($('#form_1 input[value=""]').after('<span style="color:red">заполните поле правильно</span>').length !== 0) { $('#form_1').fadeOut(); $('#form_2').fadeIn(); } |
Кому интересно то вот код
(function ($) { $(function () { $('form').submit(function (event) { event.preventDefault(); form = $(this); form.each(function (i) { if ($(this).find('input').val() != "") { return true; } else { $(this).find('input').after('<span style="color:red">заполните поле правильно</span>'); } }); }); }); })(jQuery); |
sobchenyuk, 6 лет назад он явно был интересен ТС))
UPD. Да и я бы не стал юзать этот код. |
Часовой пояс GMT +3, время: 03:34. |