Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как наделить события хорошей реакцией? (https://javascript.ru/forum/misc/7436-kak-nadelit-sobytiya-khoroshejj-reakciejj.html)

Dotod 01.02.2010 13:18

Как наделить события хорошей реакцией?
 
Решил чередовать теорию с практикой - теперь чередую одну проблему с другой. Суть вопроса в следующем: почему событие onChange, да и вообще любое событие, срабатывает не сразу после изменения текста в поле textarea, а только после того как кликшешь вне этого поля?

Я, например, обрезаю текст при событии onChange, и хочу, чтобы пользователь сразу увидел результат обрезки при вставке текста в textarea, а не после того, как щелкнет куда-то, чтоб эти изменения вступили в силу.

Octan, в первую очередь рассчитываю на вас:victory:

subzey 01.02.2010 13:39

Просто потому что событие change — это «элемент формы потерял фокус и при этом изменил свое значение».

По поводу же события DOMControlValueChanged и подобных посмотрите тут, возможно, Вам пригодится.

Niar 01.02.2010 13:50

У octan'a уже фанаты есть:D

Dotod 01.02.2010 14:30

subzey,
Спасибо, буду мозговать

Dotod 02.02.2010 20:48

Кому интересно, самый простой способ фиксировать изменения на уровне атрибутов, value, например - это сканировать их (в моем случае - это скан textarea). Получилась вот такая простая функция, которую можно вызывать по событию onFocus:

function scan_textarea(obj_slice) 
{
var getval = function() {return obj_slice.value;}
var oldval = getval();
intervalID = setInterval(function() 
{if (oldval!=getval()) {alert("Что-то изменилось");}
oldval=getval();
},200);
}


Не забудьте прекратить выполнение функции по событию onBlur, например (onBlur="clearInterval(intervalID)")


Часовой пояс GMT +3, время: 14:15.