Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка нескольких ID (https://javascript.ru/forum/misc/66218-proverka-neskolkikh-id.html)

karakym 01.12.2016 18:15

Проверка нескольких ID
 
Доброго времени суток, есть такой код:
var requestForm = $('#request-demo'),

Но у меня на сайте есть 2 формы, которые нужно проверить этим же способом. Есть простой вариант копи-паст + замена имен переменных.
Но вот хочу узнать можно ли как то таким способом это сделать?
var requestForm = $('#request-demo')||$('#request-popup'),

Что бы проверяло любую из этих форм.

Coriolan161 01.12.2016 19:22

karakym,
Ну так он тебе все время первую форму будет пихать в requestForm, если селектор верный и такая форма в ДОМе есть

Пиши один метод в который будешь передавать 'demo' или 'popup' и два раза его вызывай

function checkForm(name) {
  var requestForm = $('#request-' + name);
};


Цитата:

Что бы проверяло любую из этих форм
??? Ну тогда один раз вызывай на какой хочешь))

karakym 01.12.2016 20:22

Цитата:

Сообщение от Coriolan161
Пиши один метод в который будешь передавать 'demo' или 'popup' и два раза его вызывай

то есть на submit вешать onclick="checkForm(тут попап или демо)"

Coriolan161 01.12.2016 21:00

karakym,
натюрлих

karakym 02.12.2016 01:51

Цитата:

Сообщение от Coriolan161 (Сообщение 436801)
karakym,
натюрлих

Не совсем понял!

Vlasenko Fedor 02.12.2016 02:51

var $demo = $('#request-demo'),
    $popup = $('#request-popup'),
    requestForm = $demo.length ? $demo : $popup;

karakym 02.12.2016 03:46

А что означает в данном примере: .length

Vlasenko Fedor 02.12.2016 03:53

если тега на странице не будет #request-demo
то $('#request-demo') вернет объект у которого lengt === 0
если теги на странице есть то length будет больше 0, равно колличеству объектов с данным тегом

laimas 02.12.2016 14:43

Цитата:

Сообщение от karakym
Что бы проверяло любую из этих форм.

А текущую как источник события что нельзя проверить?

karakym 02.12.2016 16:08

Вот как проходит валидация форм:
// Request Demo Form
{
	// Variables
	{
		/* Inputs
		var $demo = $('#request-demo'),
	    	$popup = $('#request-popup'),
	    	requestForm = $demo.length ? $demo : $popup;
*/
		var requestForm = $('#request-demo'),

			fullNameInput = $('#fullName'),
			fullNameError = false, 

			phoneNumberInput = $('#phoneNumber'),
			phoneNumberError = false,

			emailInput = $('#email'),
			emailError = false,

			messageInput = $('#message'),
			messageError = false,

			numberCheck = /^\+?[0-9]+$/,
			specialCharactersCheck = /^[а-яА-ЯёЁa-zA-Z0-9- ]*$/,
			emailCheck = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	}

	// Inputs Validations
	{
		var fullNameValidate = function(){
			var fullNameVal = fullNameInput.val();
			if(!fullNameVal.trim() || fullNameVal == null || fullNameVal == "" || !fullNameVal.match(specialCharactersCheck)){
				fullNameInput.addClass('invalid').removeClass('valid');
				fullNameError = true;
				// $('html, body').animate({scrollTop: fullNameInput.offset().top - 100}, 1000);
			}else{
				fullNameInput.removeClass('invalid').addClass('valid');
				fullNameError = false;
			}

			return fullNameError;
		}
		fullNameInput.on('keyup focusout blur', function(e){
			fullNameValidate();
		});

		var phoneNumberValidate = function(){
			var phoneNumberVal = phoneNumberInput.val();


			if(phoneNumberVal == null || phoneNumberVal == "" || !phoneNumberVal.match(numberCheck)){
				phoneNumberInput.addClass('invalid').removeClass('valid');
				phoneNumberError = true;
				// $('html, body').animate({scrollTop: phoneNumberInput.offset().top - 100}, 1000);
			}else{
				phoneNumberInput.removeClass('invalid').addClass('valid');
				phoneNumberError = false;
			}
			return phoneNumberError;
		}
		phoneNumberInput.on('keyup focusout blur', function(e){
			phoneNumberValidate();
		});

		var emailValidate = function(){
			var emailVal = emailInput.val(); 

			if(!emailVal.trim() || emailVal == null || emailVal == "" || !emailVal.match(emailCheck)){
				emailInput.addClass('invalid').removeClass('valid');
				emailError = true;
				// $('html, body').animate({scrollTop: emailInput.offset().top - 100}, 1000);
			}else{
				emailInput.removeClass('invalid').addClass('valid');
				emailError = false;
			}
			return emailError;
		}
		emailInput.on('keyup focusout blur', function(e){
			emailValidate();
		});

		var messageValidate = function(){
			var messageVal = messageInput.val();
			if(!messageVal.trim() || messageVal == null || messageVal == ""){
				messageInput.removeClass('invalid').removeClass('valid');
			}else{
				messageInput.addClass('valid').removeClass('invalid');
			}
		}
		messageInput.on('keyup focusout blur', function(e){
			messageValidate();
		});

		$('.close-requested').on('click', function(){
			requestForm.removeClass('requested');
		})
	}


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