всем здравствуйте. нужна подсказка по поводу работы скриптов под разными браузерами.
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']);
});