2014-08-13 2 views
0

У меня есть регулярное поле ввода, которое используется для фильтрации DataTable. У меня есть функция keyup на входе, которая вызывает fnFilter, я также хотел бы изменить цвет ввода, чтобы уведомить пользователя о том, что фильтр активен.jquery keyup event wont trigger add/removeClass

Это мой код:

CSS

.pn-input { 
     border-color:#4d4f53; 
} 

.pn-input-active { 
     border-color:#126C00; 
} 

JQuery

$('#searchfield').keyup(function() { 
    oTable.fnFilter($(this).val()); 

    if ($(this).val().length > 0) { 
     $(this).removeClass('pn-input'); 
     $(this).addClass('pn-input-active'); 
    } else { 
     $(this).removeClass('pn-input-active'); 
     $(this).addClass('pn-input'); 
    } 
}); 

fnFilter триггеры правильно для каждого символа, но вход не делает. Цвет изменяется только тогда, когда я нажимаю кнопку вне ввода текста.

Что я делаю неправильно?

+1

кажется прекрасным http://jsfiddle.net/arunpjohny/7o03dfpe/1/ –

+0

Это странно, он не работает на моем проекте ... –

+0

Вы уверены, что правильно загрузили jQuery? Любой другой код, переопределяющий любые элементы 'input'? и т. д. и т. д. – urbz

ответ

1

Изменение CSS в

.pn-input { 
    border-color:#4d4f53!important; 
} 

.pn-input.pn-input-active { 
    border-color:#126C00!important; 
} 

сценария в

$('#searchfield').keyup(function() { 
    var Self=$(this); 
    oTable.fnFilter($(this).val()); 

    if ($(Self).val().length > 0) { 
     $(Self).addClass('pn-input-active'); 
    } else { 
     $(Self).removeClass('pn-input-active'); 
    } 
}); 
+0

Важно, чтобы это сработало, спасибо! –

+0

Это означает, что для вашего контроля существуют некоторые стили –