[jQuery Live Searchライブラリ] ページ内から候補をリアルタイム検索する

説明

jQuery Live Searchライブラリでページ内から候補をリアルタイム検索するには、検索対象となる文字列をリスト形式(ulタグ)で用意しておきます。あとは、テキストフィールドに対してsearch()メソッドを実行します。以下のサンプルではname="q"のテキストフィールドに文字を入力するとid="names"のリストから一致したものをリストアップし表示します。

サンプルプログラム

【HTML】
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Sample</title>
<link rel="stylesheet" href="css/main.css" type="text/css" media="all">
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.livesearch.js"></script>
<script type="text/javascript" src="js/sample.js"></script>
</head>
<body>
<h1>ページ内リアルタイム検索</h1>
<form>
<input type="text" name="q" value="">
<span id="count"></span>
</form>
<ul id="names">
<li>mz-80K</li>
<li>mz-80K2</li>
<li>mz-80C</li>
<li>mz-1200</li>
<li>mz-700</li>
<li>mz-1500</li>
<li>mz-80B</li>
<li>mz-80B2</li>
<li>mz-2000</li>
<li>mz-2200</li>
<li>mz-2500</li>
<li>mz-2861</li>
<li>mz-3500</li>
<li>mz-5500</li>
<li>mz-6500</li>
</ul>
</body>
</html>


【sample.js】
(function($) {
$(document).ready(function() {
$('input[name="q"]').search('#names li', function(on) {
on.all(function(results) {
var size = results ? results.size() : 0
$('#count').text(size + '個見つかりました');
});
on.reset(function() {
$('#none').hide();
$('#names li').show();
});
on.empty(function() {
$('#none').show();
$('#names li').hide();
});
on.results(function(results) {
$('#none').hide();
$('#names li').hide();
results.show();
});
});
});
})(jQuery);
サンプルを実行
[戻る]