Непонятное творится с javascript или я чтото не понимаю?

R
На сайте с 03.08.2012
Offline
131
410

Делаю обработку формы на jquery. Есть 2 поля: страна и телефон. Сперва поле телефон неактивное и в атребуте: "value" стоит: "Укажите страну". Далее когда вводишь страну (идет проверка на кол-во символов, true - если символов больше 2х) раблокируеться поле телефон, когда стираешь страну, поле телефон опять дожно заблокоироваться и написано (value): "Укажите страну". У меня когда стираешь страну, поле разблакируеться ну надпись не появляеться. Атрибут value не меняеться:(

Использую маску для телефона.

Вот код:

	$("#strana_profil_form").keyup(function(e) {


if($("#strana_profil_form").val().length > 2)
{
$("#tel_profil_form").attr('disabled', false);
if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'россия'){$("#tel_profil_form").mask("+7 (999) 999-99-99");}
else if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'украина'){$("#tel_profil_form").mask("+380 (99) 999-99-99");}
else if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'казахстан'){$("#tel_profil_form").mask("+7 (999) 999-99-99");}
else if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'белорусия'){$("#tel_profil_form").mask("+375 (99) 999-99-99");}
else {$("#tel_profil_form").mask("+7 (999) 999-99-99");}
$("#tel_profil_form").attr('value',' ');
}
else
{
$("#tel_profil_form").attr('disabled', true);
$("#tel_profil_form").mask("aaaaaaa aaaaaa");
$("#tel_profil_form").attr('value','Укажите страну');
}

});

Так самое интерестное.....если добовляешь 1 строчку:

	$("#strana_profil_form").keyup(function(e) {


if($("#strana_profil_form").val().length > 2)
{
$("#tel_profil_form").attr('disabled', false);
if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'россия'){$("#tel_profil_form").mask("+7 (999) 999-99-99");}
else if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'украина'){$("#tel_profil_form").mask("+380 (99) 999-99-99");}
else if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'казахстан'){$("#tel_profil_form").mask("+7 (999) 999-99-99");}
else if($("#strana_profil_form").val().toLowerCase().replace(/\s/g, '') == 'белорусия'){$("#tel_profil_form").mask("+375 (99) 999-99-99");}
else {$("#tel_profil_form").mask("+7 (999) 999-99-99");}
$("#tel_profil_form").attr('value',' '); //Обратите внимание, если добавить эту строчку, то все работает...Когда стираешь страну, появляеться "Укажите страну"...чудеса какие-то....
}
else
{
$("#tel_profil_form").attr('disabled', true);
$("#tel_profil_form").mask("aaaaaaa aaaaaa");
$("#tel_profil_form").attr('value','Укажите страну');
}

});

Бред какой-то, почему работает нормально только, когда добавляешь строчку... и причем тут она, я не понимаю.

Подскажите, пожалуйста, в чем могут быть проблемы...Буду очень блогодарен!

R
На сайте с 03.08.2012
Offline
131
#1

хм... некто незнает, какая может быть причина?(

olympteka
На сайте с 08.06.2013
Offline
16
#2

А попробуйте вместо $("#tel_profil_form").attr('value','Укажите страну'); вот это $("#tel_profil_form").val('Укажите страну');

Или сначала $("#tel_profil_form").attr('value','Укажите страну');, а потом $("#tel_profil_form").attr('disabled', true);

А вообще, под (disabled', true) понимается не разблокировка, а блокировка. Чтоб разблокировать, используйте removeAttr("disabled"), а заблокировать - attr("disabled","disabled").

Я, правда сильно не вникал, может с условиями что.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий