Показать сообщение отдельно
  #1 (permalink)  
Старый 19.10.2013, 14:07
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Проверка вхождения подстроки в строку
На странице имеется список названий и поле ввода:
<form action="">
	<input type="text" value="" />
</form>
<p>name a</a>
<p>name b</a>
<p>name c</a>

Задача сделать так чтобы при вводе отображались только те из списка внутри которых содержится текст из поля ввода.
Написал скрипт:
$("input:text").keyup(function(){
	var $value = $(this).val().toLowerCase();
	var $length = $(this).val().length;	
	if($length > 0) {
		$("p").each(function() {
			var $text = $(this).text().toLowerCase();
			if($text.indexOf($value) + 1) {
				$(this).addClass("ok");
			}
		});
		$("p:not(.ok)").hide();
		$("p").removeClass("ok");
	} else {
		$("p").removeClass("ok");
		$("p").show();
	}
});

Он работает исправно при наборе символов, но при нажатии кнопки Backspace он перестает срабатывать. То есть работает только в одну сторону.

Подскажите где ошибка?
Ответить с цитированием