Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как проверить все атрибуты всех инпутов (https://javascript.ru/forum/jquery/17765-kak-proverit-vse-atributy-vsekh-inputov.html)

shaltay 01.06.2011 18:00

Как проверить все атрибуты всех инпутов
 
Доброго времени.
Есть форма. Нужно проверить, заполнены ли все поля или нет.

Мысль: если хотя бы один из $('input').attr('value') == " ", то совершить действие.
Как это грамотно реализовать?

Serg_pnz 01.06.2011 20:22

имхо по each http://jquery.page2page.ru/index.php...BE%D1%80%D0%B0
Если $(this)=='', то stop=1
Если stop==1, то "заполните все поля"

Как-то так, но я предпочитаю проверять каждое поле, хотя бы потому, что мыло не может содержать симвлов русского алфавита, тчк-с-зпт и т.д.

Telnet 01.06.2011 20:26

val()

Позволяет получить значение атрибута value у элементов input, textarea, select. Для элементов select и checkbox нужно использовать селекторы :selected и :checked.
function notEmptyInput(){
$('input').each(function(i) {
if ($(this).attr('value') != " ") {return true ;}
});

Проверяешь если функция вернула True то значит еще есть не заполненное поле.

Serg_pnz 01.06.2011 21:11

$(this).attr('value') ??????
$(this).val() достаточно

cmygeHm 02.06.2011 14:18

для конкретной формы через serialize, создается объект со всеми инпутами формы.

shaltay 02.06.2011 18:05

Спасибо! помогли сделать вот так:
$('#form_1 input').each(function(i) {
		if ($(this).val()!= "") {
			return true;
		} else {
			$(this).after('<span style="color:red">заполните поле правильно</span>');
		}
		
	});


А как теперь сделать чтобы если все поля заполнены, происходило действие?

shaltay 02.06.2011 18:12

СДелал так:

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();
}


Можно ли проще? Но вообще не обязательно. Этого достаточно!

Спасибо всем большое

Matre 02.06.2011 19:34

if ($('#form_1 input[value=""]').after('<span style="color:red">заполните поле правильно</span>').length !== 0) {
	$('#form_1').fadeOut();
	$('#form_2').fadeIn();
}

sobchenyuk 19.05.2017 14:24

Кому интересно то вот код
(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);

Nexus 19.05.2017 14:59

sobchenyuk, 6 лет назад он явно был интересен ТС))

UPD. Да и я бы не стал юзать этот код.


Часовой пояс GMT +3, время: 03:34.