Как узнать, когда текстовая область HTML была изменена Javascript - PullRequest
1 голос
/ 12 января 2011

Используемый виджет изменяет элемент HTML textarea.Мне нужно знать, когда этот элемент был изменен, и, желательно, я бы тоже хотел скрыть этот элемент.Я использую jQuery, поэтому я, естественно, попробовал событие $ ('# textarea_id'). Change ().Но это никогда не срабатывает, потому что я думаю, что текстовая область никогда не теряет фокус.

Какой лучший способ отслеживать эту текстовую область, желательно скрытую (css имеет отображение: нет)?Пожалуйста, не говорите мне setInterval ...

Ответы [ 2 ]

1 голос
/ 12 января 2011

Вы можете управлять этим с помощью глобальной переменной.

var text = "";

$('#textarea_id').bind("keyup paste", function(e){
    if ($(this).val() != text)
    {
        // text changed
        text = $(this).val();
    }    
});

рабочий пример: http://jsfiddle.net/n8keN/

0 голосов
/ 12 января 2011

Я бы использовал .keyup(). Если вы не хотите, чтобы событие вызывало каждое нажатие клавиши, перезапустите таймер на полсекунды при каждом нажатии клавиши, а таймер вызовет то, что вы хотите, чтобы происходило, когда пользователь прекращает печатать. Вы можете играть со временем, чтобы получить его по своему вкусу.

...