2014-07-07 2 views
1

Я пытаюсь скрыть некоторое содержимое в div на основе длины значения текстового поля при нажатии клавиши. Однако это не работает. Является ли ключ backspace не считающимся нажатием клавиши?Скрыть содержимое DIV, зависящее от длины текстового поля

Если вы выберете JSFIDDLE ниже, после ввода чего-либо в текстовое поле, появится информационное окно, а затем после того, как все будет стерто, должно исчезнуть.

JSFIDDLE

$(function() { 
    $('.textBox').keypress(function (e) { 
     if ($('.textBox').val().length < 1) {  
      $('.infoBox').fadeOut(600); 
     } else { 
      $('.infoBox').fadeIn(600); 
     }; 
    }); 
}); 
+1

Событие 'keypress' запускается до того, как значение будет обновлено. Вместо этого используйте 'keyup' - [см. Здесь] (http://jsfiddle.net/gE742/20/) – billyonecan

+0

В вашей скрипте есть дополнительные скобки, вызывающие ошибку, см. Консоль ошибок. – Esko

ответ

0

Во-первых, у Вас есть ошибка в этой скрипкой:

if ($('.textBox').val().length < 1) {  
    $('.infoBox').fadeOut(600); 
}); 

Должно быть

if ($('.textBox').val().length < 1) {  
    $('.infoBox').fadeOut(600); 
} 

Во-вторых, использовать keyup() вместо этого - http://jsfiddle.net/ajthomascouk/BBu9P/

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