Всем доброго дня!
Использую плагин 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/