Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.07.2016, 08:56
Новичок на форуме
Отправить личное сообщение для upiter77 Посмотреть профиль Найти все сообщения от upiter77
 
Регистрация: 16.07.2016
Сообщений: 7

Обработчик формы
здравствуйте, есть обработчик формы
$(document).ready(function(){
	var pattern = /^[а-яА-Яa-zA-ZёЁ ]{3,15}$/i;
	var name = $('#name');
	
	name.blur(function(){
		if(name.val() != '' && name.val() !='Имя'){
				if(name.val().search(pattern) == 0){
					$('#valid1').html('&nbsp;&nbsp;&nbsp;<img src="http://modus-crimea.ru/images/galochka.gif" />');
					//$('#submit').attr('disabled', false);
					name.removeClass('error').addClass('ok');
				
				}else{ 
					$('#valid1').text('');
					$('#submit').attr('disabled', true);
					name.addClass('error');
				}
			}else{
				$('#valid1').text('');
				name.addClass('error');
				$('#submit').attr('disabled', true);
			}
	})
});






$(document).ready(function(){
	var pattern = /^[a-z.0-9_-]+@[a-z0-9-]+\.[a-z]{2,6}$/i;
	var email = $('#email');
	
	email.blur(function(){
		if(email.val() != ''){
				if(email.val().search(pattern) == 0 && email.val() !='Email'){
					$('#valid').html('&nbsp;&nbsp;&nbsp;<img src="http://modus-crimea.ru/images/galochka1.gif" />');
					//$('#submit').attr('disabled', false);
					email.removeClass('error').addClass('ok');
					
				}else{
					$('#valid').text('');
					$('#submit').attr('disabled', true);
					email.addClass('error');
				}
			}else{
				$('#valid').text('');
				email.addClass('error');
				$('#submit').attr('disabled', true);
			}
	});
});






$(document).ready(function(){
	var pattern = /^[а-яА-Я,.0-9! ]{3,60}$/i;
	var subject = $('#subject');
	
	subject.blur(function(){
		if(subject.val() != '' && subject.val() !='Тема сообщения'){
				if(subject.val().search(pattern) == 0){
					$('#valid2').html('&nbsp;&nbsp;&nbsp;<img src="http://modus-crimea.ru/images/galochka2.gif" />');
					//$('#submit').attr('disabled', false);
					subject.removeClass('error').addClass('ok');
					
				}else{
					$('#valid2').text('');
					$('#submit').attr('disabled', true);
					subject.addClass('error');
				}
			}else{
				$('#valid2').text('');
				subject.addClass('error');
				$('#submit').attr('disabled', true);
			}
	});
});

$(document).ready(function(){
	var pattern = /^[а-яА-ЯЁё,.0-9!a-zA-Z-!""'@:;+=#№%&* \n\r]{3,600}$/i;
	var message = $('#message');
	
	message.blur(function(){
		if(message.val() != '' && message.val() !='Текст сообщения'){
				if(message.val().search(pattern) == 0){
					$('#valid3').html('&nbsp;&nbsp;&nbsp;<img style="vertical-align:80px" src="http://modus-crimea.ru/images/galochka3.gif" />');
					//$('#submit').attr('disabled', false);
					message.removeClass('error').addClass('ok');
					
					
					
					
				}else{
					$('#valid3').text('');
					$('#submit').attr('disabled', true);
					message.addClass('error');
					
				}
			}else{
				$('#valid3').text('');
				
				message.addClass('error');
				$('#submit').attr('disabled', true);
			}
	});
});

в каждой функции закомментировано включение кнопки submit
подскажите как сделать чтоб кнопка активировалась только тогда когда все поля будут заполнены правильно?
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2016, 10:38
Новичок на форуме
Отправить личное сообщение для upiter77 Посмотреть профиль Найти все сообщения от upiter77
 
Регистрация: 16.07.2016
Сообщений: 7

пытался сделать так
$(document).ready(function(){
    if($('#name').hasClass("ok") && $('#email').hasClass("ok") &&  $('#subject').hasClass("ok") && $('#message').hasClass("ok"))
    {
	$('#submit').attr('disabled', false);
	 } 

	
 
 });

не работает
Ответить с цитированием
  #3 (permalink)  
Старый 16.07.2016, 11:31
Аспирант
Отправить личное сообщение для Spass Посмотреть профиль Найти все сообщения от Spass
 
Регистрация: 14.07.2016
Сообщений: 86

Попробуй $('#submit').prop('disabled', false);

Последний раз редактировалось Spass, 16.07.2016 в 11:35.
Ответить с цитированием
  #4 (permalink)  
Старый 16.07.2016, 11:33
Аватар для armidoll
Кандидат Javascript-наук
Отправить личное сообщение для armidoll Посмотреть профиль Найти все сообщения от armidoll
 
Регистрация: 28.05.2015
Сообщений: 116

Вариант подхода к валидации форм:
http://www.w3schools.com/js/js_validation.asp
Ответить с цитированием
  #5 (permalink)  
Старый 16.07.2016, 11:43
Новичок на форуме
Отправить личное сообщение для upiter77 Посмотреть профиль Найти все сообщения от upiter77
 
Регистрация: 16.07.2016
Сообщений: 7

Попробуй $('#submit').prop('disabled', false);


так тоже не работает(

Последний раз редактировалось upiter77, 16.07.2016 в 11:47.
Ответить с цитированием
  #6 (permalink)  
Старый 16.07.2016, 12:03
Новичок на форуме
Отправить личное сообщение для upiter77 Посмотреть профиль Найти все сообщения от upiter77
 
Регистрация: 16.07.2016
Сообщений: 7

Сообщение от armidoll Посмотреть сообщение
Вариант подхода к валидации форм:
http://www.w3schools.com/js/js_validation.asp

мне бы с этим разобраться..
Ответить с цитированием
  #7 (permalink)  
Старый 16.07.2016, 12:31
Аватар для armidoll
Кандидат Javascript-наук
Отправить личное сообщение для armidoll Посмотреть профиль Найти все сообщения от armidoll
 
Регистрация: 28.05.2015
Сообщений: 116

Вариант:

1. Создать функцию высшего порядка validateForm ( принимает отдельные функции-валидаторы в качестве аргументов )

где параметр vaidatorList это массив функций-валидаторов [ fn1, fn2, ..., fnN ]
validateForm = function ( validatorList ) {
    ... 
}

которая возвращает false, если хоть один из валидаторов вернул false

2. Создавать необходимые валидаторы и передавать в качестве аргументов:
validateForm( [ fn1, fn2, ..., fnN] );

3. Создать функцию-обработчик события для onsubmit, скажем:
onSubmitForm = function () {
  return validateForm( [ fn1, fn2, ... , fnN ] );
}

Последний раз редактировалось armidoll, 16.07.2016 в 12:42.
Ответить с цитированием
  #8 (permalink)  
Старый 16.07.2016, 13:38
Новичок на форуме
Отправить личное сообщение для upiter77 Посмотреть профиль Найти все сообщения от upiter77
 
Регистрация: 16.07.2016
Сообщений: 7

Сообщение от armidoll Посмотреть сообщение
Вариант:

1. Создать функцию высшего порядка validateForm ( принимает отдельные функции-валидаторы в качестве аргументов )

где параметр vaidatorList это массив функций-валидаторов [ fn1, fn2, ..., fnN ]
validateForm = function ( validatorList ) {
    ... 
}

которая возвращает false, если хоть один из валидаторов вернул false

2. Создавать необходимые валидаторы и передавать в качестве аргументов:
validateForm( [ fn1, fn2, ..., fnN] );

3. Создать функцию-обработчик события для onsubmit, скажем:
onSubmitForm = function () {
  return validateForm( [ fn1, fn2, ... , fnN ] );
}
блин.. сложно сильно для меня
Ответить с цитированием
  #9 (permalink)  
Старый 16.07.2016, 14:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

galochka.gif, galochka1.gif, galochka2.gif, ... - они что настолько различны, что одной картинкой не обойтись? )
Ответить с цитированием
  #10 (permalink)  
Старый 16.07.2016, 14:20
Аватар для armidoll
Кандидат Javascript-наук
Отправить личное сообщение для armidoll Посмотреть профиль Найти все сообщения от armidoll
 
Регистрация: 28.05.2015
Сообщений: 116

Костыли ( не видя html ):
if ( $( '#name' ).hasClass( "ok" )
     && $( '#email' ).hasClass( "ok" )
     && $( '#subject' ).hasClass( "ok" )
     && $( '#message' ).hasClass( "ok" ) )
  {
    $( '#submit' ).attr( 'disabled', false );
  }

добавить в конец ВСЕХ анонимных коллбэков .blur()
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик формы Nastasjya2015 Общие вопросы Javascript 0 07.04.2015 15:12
Как добавить код яндекс.метрики в обработчик формы? jscooker Events/DOM/Window 1 06.12.2014 11:41
Обработчик формы lepeed Общие вопросы Javascript 3 28.07.2014 11:40
Как лучше указывать php обработчик при отправке формы? cyber_bober Events/DOM/Window 2 28.07.2014 08:28
Обработчик формы в новом окне goooooch Events/DOM/Window 2 11.10.2012 10:35