Задать вопрос
chewarer
@chewarer

Как проверить заполнены ли поля формы и показать статус полей?

Есть форма с 30 полями.
Пытаюсь сделать проверку на заполненность этих полей. С отображением статуса "Заполните поля калькулятора", если не все поля заполнены, и "Нажмите "Рассчитать"", когда все поля заполнены. Статус должен показываться до клика на Submit.
Пытаюсь сделать так:
$('#myform').bind('mouseover change', function() {
	$('#myform input').each(function(){
	    	if ($(this).val() == '') {
	    		$('#result').html('Некорректные значения'); 
	    	}
	    	else {
	    		$('#result').html('Все поля заполнены'); 
	    	}
	});
});

Но при этом проверяется только последнее поле в форме. Как сделать чтобы все поля проверялись?
  • Вопрос задан
  • 4797 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
chewarer
@chewarer Автор вопроса
Всем спасибо за советы. Но это не то. Сделал так:
$('.calc-form, #open-calc div.open', context).bind('mouseover change', function() {
	var is_correct = 0;
	$('.calc-form .field input', context).each(function() {
     	is_correct += parseInt($(this).val());
     	if (isNaN(is_correct) == false) {
    		$('.calc-form .status').html('Нажмите «Рассчитать» для сравнения');
     	}
     	else {
     		$('.calc-form .status').html('Заполните поля калькулятора');
     	}
	});
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Bowen
@Bowen
Японский бог
Ответ написан
Комментировать
coderisimo
@coderisimo Куратор тега JavaScript
а если вот так :

var all_form_inputs =  document.forms["имя вашей формы"].getElementsByTagName("input");


на JQuery
var $inputs = $('#myForm :input');
    $inputs.each(function() {
    //  вот значение каждого поля $(this).val();
    });
Ответ написан
Traineratwot
@Traineratwot
Web - программист
$("form button,form input[type='button'],input[type='submit']").on('click',
                    function(t) {
                        var test = true;
                        var selecter
                        if ($(this)[0].form) {
                            selecter = $(this)[0].form
                        } else if ($(this).attr('form')) {
                            selecter = $('form[name=' + $(this).attr('form') + ']')
                        } else {
                            console.warn('где форма?')
                            return true;
                        }
                        $(selecter).find('input[required]').each(function(index, element) {
                            let x = $(element).val()
                            if (x === false || x == '' || x == 'undefind') {
                                // console.log('X')
                                test = false
                                var tooltip = $('<span>', {
                                    css: {
                                        'width': 'fit - content',
                                        'z-index': 9999,
                                        'background': '#b5b5b5bd',
                                        'color': '#20272F',
                                        'padding': '5px',
                                        'border-radius': '2px'
                                    },
                                    html: '<i class="fas fa-exclamation-circle" style="color:gold;"></i> Не заполнено поле'
                                }).appendTo('body');
                                $(tooltip).offset({
                                    top: $(element).offset().top - $(element).height() - 7,
                                    left: $(element).offset().left
                                })
                                $(tooltip).fadeOut(0).fadeIn(500)
                                setTimeout(() => {
                                    $(tooltip).fadeOut(500)
                                    setTimeout(() => {
                                        $(tooltip).remove()
                                    }, 500);
                                }, 2500);

                            } else {
                                // console.log('O')
                            }
                        });
                        if (test) {
                            eval($(t.currentTarget).attr('data-click'))
                        }
                    }
                )

вот универсальный скрипт для проверки форм
p.s необходим JQuery
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы