0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 1660 Просмотров
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Валидация формы.
« : 05.09.2012, 16:42:19 »
добрый день всем.
есть форма регистрации ( модуль S5 Register)
сделана валидация с помощью  validate.js  в общем стандартная юмболовская,
кроме  стандартной валидации дописал свою которая ajax-ом на лету  проверяет  логин(занят или свободен)
и выводит в <span> ошибку если занят. работает все замечательно, но потом выяснилось что даже с ошибкой( логин занят) форма спокойно отправляется.посоветуйте как сделать,чтобы писалась ошибка что логин занят и кнопка submit  не отправляла данные.
вот скрипт проверки
Код: javascript
 window.addEvent('domready', function()
 //Проверяем на лету поле с username (после ввода 3 символов)

  {
  var username = $('jform_username'); //где jform_username это ID поля
    log = new Element('span').injectAfter('login');
    log.set('class', 'ajaxstatus');
    username.addEvents({
      'keyup': function() {
        if   (username.value.length > 3) {
//устанавливаем с какого символа начинать проверку, в данном случае в 4
        var usernameA = username.get('value'); //получем новое значение поля
        var url = 'index.php?option=com_users&task=AjaxCheckUsername&format=row&username='+(usernameA);
                var req = new Request({
            method: 'post',
            url: url,
            onComplete: function(response) {
            if (response == 1) {
              log.set('html','занят');
              log.set('class','checkinvalid');
            } else {
              log.set('html','свободен');
              log.set('class','checkvalid');
            }
            }
          }).send();
      } else {
        log.set('html', '')
      };
      }
    });
 });





Заранее спасибо за любую помощь >:(
« Последнее редактирование: 06.09.2012, 12:21:41 от Box210277 »
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Валидация формы.
« Ответ #1 : 05.09.2012, 16:55:09 »
Извините за глупый вопрос, а где конкретно писать  return false;?
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Валидация формы.
« Ответ #2 : 05.09.2012, 17:00:41 »
к сожалению не помогло так.
а как в стандартном validate.js  устроено?я  еще только учусь и сам боюсь не разберусь
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Валидация формы.
« Ответ #3 : 05.09.2012, 21:04:46 »
мне  не подходит  вариант с встроенным валедатором. а возможно просто отключать кнопку если выполняется условие??
попробовал так
Код
if (response == 1) {
      log.set('html','занят');
      log.set('class','checkinvalid');
       $('submit').set('disabled','disabled');
}
else {
      log.set('html','свободен');
      log.set('class','checkvalid');
}


но теперь не знаю как включить ее, т.е. удалить disabled  =(
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Re: Валидация формы.
« Ответ #4 : 05.09.2012, 21:31:02 »
Код: javascript
$('submit').set('disabled','');
Так не пробовал?
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Валидация формы.
« Ответ #5 : 05.09.2012, 22:05:20 »
не работает с несколькими  элементами вот код
Код: javascript
  window.addEvent('domready', function()
 //Проверяем на лету поле с username (после ввода 3 символов)

  {
  var username = $('jform_username'); //где jform_username это ID поля
    log = new Element('span').injectAfter('login');
    log.set('class', 'ajaxstatus');
    username.addEvents({
      'keyup': function() {
        if   (username.value.length > 3) {
//устанавливаем с какого символа начинать проверку, в данном случае в 4
        var usernameA = username.get('value'); //получем новое значение поля
        var url = 'index.php?option=com_users&task=AjaxCheckUsername&format=row&username='+(usernameA);
        var req = new Request({
            method: 'post',
            url: url,
            onComplete:
function(response) {
            if (response == 1) {
              log.set('html','занят');
              log.set('class','checkinvalid');
            } else {
              log.set('html','свободен');
 log.set('class','checkvalid');
            }

            }
          }).send();
      } else {
        log.set('html', '')
      };

      }
 
    });
    //Проверяем на лету поле с email (после ввода @)
var email = $('jform_email1'); //где jform_username это ID поля
log1 = new Element('span').injectAfter('email');
        log1.set('class', 'ajaxstatus');
    email.addEvents({
      'keyup': function() {
        var emailA = email.get('value'); //получем новое значение поля
        var dogtrue = emailA.test('@');
        if (dogtrue) {
          var url = 'index.php?option=com_users&task=AjaxCheckEmail&format=row&email='+(emailA);
                  var req = new Request({
              method: 'post',
              url: url,
              onComplete: function(response1) {
              if (response1 == 1) {
                log1.set('html','занят');
                log1.set('class','checkinvalid');
 return false;

              } else {
                log1.set('html','свободен');
                log1.set('class','checkvalid');
              }
              }
            }).send();
      } else {
        log1.set('html', '')
      };
      }

    });
  });
если  писать
и там  и там
Код: javascript
if (response == 1) {
              log.set('html','занят');
              log.set('class','checkinvalid');
             $('submit').set('disabled','disabled');
            } else {
              log.set('html','свободен');
         log.set('class','checkvalid');
            $('submit').set('disabled','');
            }

и
к  второму  элементу
Код: javascript
if (response1 == 1) {
                log1.set('html','занят');
                log1.set('class','checkinvalid');
 $('submit').set('disabled','disabled');
              } else {
                log1.set('html','свободен');
                log1.set('class','checkvalid');
$('submit').set('disabled','');
              }

то один другой заменит и все  >:(
в общем я  чего-то явно не догоняю  :(


« Последнее редактирование: 06.09.2012, 12:21:04 от Box210277 »
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Валидация формы.
« Ответ #6 : 06.09.2012, 15:31:59 »
Ребят что ни у кого нет ни каких идей?что можно придумать?
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Валидация формы.
« Ответ #7 : 06.09.2012, 17:59:25 »
ну я просто уже создал валидатор,его осталось прикрутить к submit вот это у меня не получается...
*

Box210277

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Валидация формы.
« Ответ #8 : 06.09.2012, 19:42:00 »
и  код не работает что вы дали в статье. он для ранних версиях Joomla
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не проходит валидация сайта

Автор Grigorii

Ответов: 8
Просмотров: 794
Последний ответ 17.01.2017, 16:04:09
от Grigorii
Не работает валидация полей при регистрации Joomla 2.5

Автор WinnieAlex

Ответов: 10
Просмотров: 3672
Последний ответ 18.06.2016, 23:07:33
от Mehanick
Отправка данных формы на email

Автор vettel

Ответов: 1
Просмотров: 754
Последний ответ 16.09.2015, 12:41:37
от darkghost
Chronoforme валидация

Автор Shankar

Ответов: 0
Просмотров: 674
Последний ответ 20.08.2015, 18:19:21
от Shankar
Куда приходят письма с формы обратной связи?

Автор makhouni

Ответов: 3
Просмотров: 3807
Последний ответ 13.02.2015, 21:41:50
от shibaday