Ответить Новая тема Новый опрос 
Всего: 2 < 1 2
 Упрощение регистрации
ggyyvv


Cпециалист
Сообщений: 233
Регистрация: 23-11-2012


17-09-2015 16:42
всё нашел кроме validate_field - нигде он ем упоминания не нахожу...

если можно объясните, что должно выполняться?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


17-09-2015 16:58
Цитата:( ggyyvv @ 17-09-2015 17:42 Смотреть сообщение )
всё нашел кроме validate_field - нигде он ем упоминания не нахожу...

/js/validate.js
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ggyyvv


Cпециалист
Сообщений: 233
Регистрация: 23-11-2012


17-09-2015 18:53
Цитата:( Алекс @ 17-09-2015 11:58 Смотреть сообщение )
Цитата:( ggyyvv @ 17-09-2015 17:42 Смотреть сообщение )
всё нашел кроме validate_field - нигде он ем упоминания не нахожу...
/js/validate.js

Код:
$(document).on('focusout', 'input.validate, textarea.validate', function() {
    if ($(this).hasClass('is_required') || $(this).val().length)
    {
        if ($(this).attr('name') == 'postcode' && typeof(countriesNeedZipCode[$('#id_country option:selected').val()]) != 'undefined')
            var result = window['validate_'+$(this).attr('data-validate')]($(this).val(), countriesNeedZipCode[$('#id_country option:selected').val()]);
        else
            var result = window['validate_'+$(this).attr('data-validate')]($(this).val())

        if (result)
            $(this).parent().removeClass('form-error').addClass('form-ok');
        else
            $(this).parent().addClass('form-error').removeClass('form-ok');
    }
});

этот кусок кода?

я так понял это замена класса на form-ok

уточните, пожалуйста

если у меня не используется индекс, нужно ли это?

и я не нашел класса is_required, который стоит в условии ни в order-opc-new-account.tpl ни через фаербаг...


Сообщение отредактировал ggyyvv (17-09-2015 13:53)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ggyyvv


Cпециалист
Сообщений: 233
Регистрация: 23-11-2012


17-09-2015 21:04
вроде бы и с этим разобрался, правда validate_field у меня не получилось - вставил проверку "к себе" - получилось следующее
Код:
var $submitAccount = $(document).find('#submitAccount').closest('form');
            $(document).on('change', $submitAccount, function(){

                var error = false;
                var $sb = $submitAccount.find('.required input.validate:visible, .required textarea.validate:visible');
                $sb.each(function(i){

                    
                $(document).on('focusout', 'input.validate, textarea.validate', function() {
                    if ($(this).hasClass('is_required') || $(this).val().length)
                        {
                        if ($(this).attr('name') == 'postcode' && typeof(countriesNeedZipCode[$('#id_country option:selected').val()]) != 'undefined')
                            var result = window['validate_'+$(this).attr('data-validate')]($(this).val(), countriesNeedZipCode[$('#id_country option:selected').val()]);
                        else
                        var result = window['validate_'+$(this).attr('data-validate')]($(this).val())

                        if (result)
                            $(this).parent().removeClass('form-error').addClass('form-ok');
                        else
                            $(this).parent().addClass('form-error').removeClass('form-ok');
                        }
                });
                    
                    
                        if ($(this).parent().hasClass('form-error') === true || !$(this).val().length)
                            error = true;
                        if(i == $sb.length - 1 && !error)
                            $('#submitGuestAccount').click();
            
                });
        });


всё работает, за исключением одного момента:

если были ошибки и они исправлены, то "клик" сразу не происходит, только если еще исправишь какое нибудь поле (без разницы), при этом класс form-ok устанавливается и alert с ошибкой не пропадает

и, если сразу ввел с ошибками, то класс form-error стоит, но alert не появляется, исправляешь всё - везде зеленые галочки, но "клика" нет. Изменяешь любое поле - тогда "клик" происходит

Алекс, я понимаю, что уже замучал вопросами, но, надеюсь что это пригодиться и другим участникам форума
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


17-09-2015 21:47
Цитата:( ggyyvv @ 17-09-2015 22:04 Смотреть сообщение )
validate_field у меня не получилось

validate.js
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ggyyvv


Cпециалист
Сообщений: 233
Регистрация: 23-11-2012


18-09-2015 09:20
Со всеми полями всё ок: валидация, смена класса, отображение ошибок, "click"...

кроме поля Имя - только с ним, если оно сначала не прошло валидацию и потом было введено правильно, класс меняется на form-ok, но остается алерт "Имя неверный" пока не изменишь любое поле. Только тогда происходит "click"

С другими полями такой проблемы нет! Всего четыре поля:
е-майл
имя
компания
телефон
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ggyyvv


Cпециалист
Сообщений: 233
Регистрация: 23-11-2012


18-09-2015 20:16
Алекс, спасибо за практичные советы!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 < 1 2