2013-05-11 2 views
1

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

Есть ли событие, которое может обнаружить, когда поле ввода очищено более эффективно?

$("#companies_wrapper").find('div.dataTables_filter input:first').keyup(function(){ 
        if($(this).val() ==""){ // if no text in input clear the table 
         oTable.fnFilter(''); 
        } 
       }); 
+2

О «повторении большого количества кода» - вы можете связать один и тот же обработчик с несколькими событиями одновременно: '$ (selector) .on ('keyup change blur otherevent', function (e) {/ * * /}) '. – DCoder

ответ

2

Лучший способ, который я нашел, - это прослушать как можно больше изменений. Вот те, которые я использую:

var _events_textchanged = 'propertychange keyup input paste change'; 
myJQueryObject.on( _events_textchanged, myFunction); 

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

Смежные вопросы