Javascript.RU

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

работает в Chrome, Safari, не работает в IE, Opera, FF
всем здравствуйте. нужна подсказка по поводу работы скриптов под разными браузерами. http://ttennis.in.ua - блок регистрации. использую bootstrap и jQuery. по событию .blur() проверяю корректность ввода. если ошибка - отправляю в .focus()
например, если пустое поле - вернуть к нему, если не пустое, но не проходит регулярку - вернуть. если удовлетворяет всем условиям - работать дальше. так вот, работает только в Chrome и Safari. как побороть?
// формы
        var id_input;
        var err = {};
        var tot_err = 0;
        
        $('.controls > input').focus(function(){
            id_input = $(this).attr("id"); // получаем id поля ввода
            $('#' + id_input + ' ~ .help-block').removeClass('nvisible_block'); // делаем видимым нижнее поле
            $('#' + id_input + ' ~ .hlp').removeClass('nvisible_block');// делаем видимой подсказку
            if (err[id_input] == 1) {
                $('#' + id_input + ' ~ .hlp').addClass('nvisible_block');// делаем невидимой подсказку
                
                if (id_input == 'inputEmail'){
                    $('#' + id_input + ' ~ .err_ml').removeClass('nvisible_block');
                } else if (id_input == 'inputPwdReg') {
                    $('#' + id_input + ' ~ .hlp_err').removeClass('nvisible_block');
                } else if (id_input == 'inputPwdR') {
                    $('#' + id_input + ' ~ .confirm_err').removeClass('nvisible_block');
                } else {
                    $('#' + id_input + ' ~ .err').removeClass('nvisible_block');// делаем видимой ошибку
                }
            }
            $('#' + id_input).keyup(function(){ // каждое нажатие клавиши
                $('#' + id_input + ' ~ .hlp').removeClass('nvisible_block');// делаем видимой подсказку
                $('#' + id_input + ' ~ .err').addClass('nvisible_block');// делаем невидимой ошибку
                $('#' + id_input + ' ~ .check').addClass('nvisible_block');
                $('#' + id_input + ' ~ .err_ml').addClass('nvisible_block');
                $('#' + id_input + ' ~ .hlp_err').addClass('nvisible_block');
                $('#' + id_input + ' ~ .confirm_err').addClass('nvisible_block');
                if (err[id_input] == 1){
                    $('#' + id_input + ' ~ .err').addClass('nvisible_block');
                    $('#' + id_input + ' ~ .hlp').removeClass('nvisible_block');
                }
                var input_str = $(this).val();// получаем значение поля ввода
                
                if (input_str.length >= 2){
                    if (id_input != 'inputEmail'){
                        var re = /^[-_0-9a-zA-Zа-яёА-ЯЁ]+$/i;
                    } else {
                        var re = /^[-_0-9a-zA-Z\.@]+$/i;
                    }
                    // проверяем через рег. выражение
                    if (re.test(input_str)){ // проходит проверку:
                        err[id_input] = 0; // err этого поля равно нулю
                        $('#' + id_input + ' ~ .err').addClass('nvisible_block'); // сообщение об ошибке - невидимое
                        $('#' + id_input + ' ~ .hlp').removeClass('nvisible_block'); // подсказка - видимая
                        if (id_input == 'inputPwdR'){
                            var pwd_str = $('#inputPwdReg').val();
                            var pwd_str_r = $('#inputPwdR').val();
                            if(pwd_str_r.length < 6 || pwd_str_r != pwd_str){
                                err['inputPwdR'] = 1;
                                $('#inputPwdR ~.confirm_err').removeClass('nvisible_block');
                            } else {
                                err['inputPwdR'] = 0;
                                $('#inputPwdR ~.confirm_err').addClass('nvisible_block');
                                $('#inputPwdR').blur();
                            }
                        }
                    } else { // не проходит проверку:
                        err[id_input] = 1; // err этого поля равно единице
                        $('#' + id_input + ' ~ .hlp').addClass('nvisible_block'); // подсказка - невидимая
                        $('#' + id_input + ' ~ .err').removeClass('nvisible_block'); // сообщение об ошибке - видимое
                    }
                }
            });
        });
        $('.controls > input').blur(function(){
            id_blur = $(this).attr("id");
            var inputVal = $('#' + id_blur).val();
            if (inputVal == '' || inputVal.length < 2 || err[id_blur] == 1){
                $('#' + id_blur).focus();
            } else {
                $('#' + id_blur + ' ~ .help-block').addClass('nvisible_block');
                $('#' + id_blur + ' ~ .hlp').addClass('nvisible_block');
                
                if(id_blur == 'inputPname'){
                    $.getJSON('user_reg.php', {'login': inputVal}, function(obj){
                        err['inputPname'] = obj.err;
                        $('#inputPname ~ .check').html(obj.str).removeClass('nvisible_block');
                        if (obj.err == 1){
                            $('#inputPname ~ .hlp').addClass('nvisible_block');
                            $('#inputPname').focus();
                        }
                    });
                } else if (id_blur == 'inputEmail') {
                    var re_ml = /^[-_\.0-9a-zA-Z]+@[-_\.0-9a-zA-Z]{1,63}\.[a-zA-Z]{2,4}$/i;
                    var eml_str = $('#inputEmail').val();
                    if (!re_ml.test(eml_str)){
                        err['inputEmail'] = 1;
                        $('#inputEmail ~ .err_ml').removeClass('nvisible_block');
                        $('#inputEmail').focus();
                    } else {
                        err['inputEmail'] = 0;
                    }
                } else if (id_blur == 'inputPwdReg'){
                    var pwd_str = $('#inputPwdReg').val();
                    if ( pwd_str.length < 6 ){
                        err['inputPwdReg'] = 1;
                        $('#inputPwdReg ~.hlp').removeClass('nvisible_block');
                        $('#inputPwdReg').focus();
                    } else {
                        err['inputPwdReg'] = 0;
                    }
                } else if(id_blur == 'inputPwdR'){
                    var pwd_str = $('#inputPwdReg').val();
                    var pwd_str_r = $('#inputPwdR').val();
                    if(pwd_str.length < 6){
                        err['inputPwdR'] = 1;
                        $('#inputPwdR ~.hlp').removeClass('nvisible_block');
                        $('#inputPwdR').focus();
                    } else if(pwd_str_r != pwd_str){
                        err['inputPwdR'] = 1;
                        $('#inputPwdR ~.confirm_err').removeClass('nvisible_block');
                        $('#inputPwdR').focus();
                    } else {
                        $('#register').attr('action', 'user_reg.php');
                        $('#confirm').removeClass('disabled').attr('type', 'submit').click();
                    }
                }
            }
            //alert('inputPname - ' + err['inputPname'] + '\n inputFname - ' + err['inputFname'] + '\n inputSname - ' + err['inputSname'] + '\n inputEmail - ' + err['inputEmail'] + '\n inputPwdReg - ' + err['inputPwdReg'] + '\n inputPwdR - ' + err['inputPwdR']);
        });
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2013, 13:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

balashovka, ты умеешь делать тестовые примеры?
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
??? Скрипт не работает в IE, FF и Opera, но работает в Chrome и Safari psiworm jQuery 1 28.01.2013 10:05
jQuery, не работает в ie, chrome и safari crowbar Javascript под браузер 3 30.04.2012 12:45
Скрипт перестал работать в новых версиях firefox, Opera и Chrome, а в IE работает polbear Javascript под браузер 3 30.06.2011 09:34
тег <audio> в Opera, Chrome, Firefox Magneto Javascript под браузер 12 25.11.2010 15:12
скрипт работает в IE не работает в Opera!!! Ikram Opera, Safari и др. 3 29.10.2010 10:04