Показать сообщение отдельно
  #1 (permalink)  
Старый 15.03.2014, 14:41
Аспирант
Отправить личное сообщение для ArtemKrass Посмотреть профиль Найти все сообщения от ArtemKrass
 
Регистрация: 23.02.2013
Сообщений: 56

Странное поведение readonly
Всем доброго дня!

Использую плагин jQuery Text Change Event http://zurb.com/playground/jquery-te...e-custom-event для отслеживания событий...

Имеем два текстовых поля:
<input type="text" id="1" name="1" value="" size="12" maxlength="10" class="form-text required">
        <br />
<input type="text" id="2" name="2" value="" size="12" maxlength="10" class="form-text required">


и код:

jQuery('#1:not(.disabled)').bind('textchange', function (event, previousText) {
    if (jQuery(this).hasClass("disabled") == false) {
    if (jQuery(this).val().length > 0) {
          jQuery('#2').addClass('disabled').attr("readonly","readonly");
    }
    else   jQuery('#2').removeClass('disabled').removeAttr("readonly", "readonly" );
  jQuery('#2').val(jQuery(this).val());
    }
});



jQuery('#2:not(.disabled)').bind('textchange', function (event, previousText) {
alert ('Hello');    
});


В первое поле что-нибудь вводим... Второму полю добавляется класс disabled и атрибут readonly.

Вроде бы все правильно, НО:

если навести курсор на второе поле и нажать какую-нибудь клавишу, один раз срабатывает событие textchange.

Почему так происходит и как от этого избавиться? Второй день ломаю голову, перепробовал кучу проверок... Такое ощущение что фактически класс с атрибутом добавляются только после нажатия на втором поле... Но браузер то правильно обрабатывает (класс и атрибут добавляет сразу)...

Вот готовый код:

http://jsfiddle.net/kjv7a/
Ответить с цитированием