複数選択用のこの検索機能があります。
var SWAPLIST = {};
SWAPLIST.search = function(list, search) {
$(list)
.children()
.prop('selected', false)
.filter(function() {
if (!search)
{
return false;
}
return $(this)
.text()
.toLowerCase()
.indexOf(search.toLowerCase()) > - 1;
})
.prop('selected', true)
};
このイベントにバインドします。
$(document).ready(function(){
$('.entitySearch').keyup(function() {
var kind = $(this).attr('kind');
var left = '.leftEntities[kind=' + kind +']';
var right = '.rightEntities[kind='+ kind +']';
SWAPLIST.search(left + "," + right, $(this).val());
});
});
これは私の複数選択の例です:
<select class="leftEntities grid5" kind="<?php echo $firstKeyLeft;?>" multiple="multiple" size="10">
<option> a </option>
<option> ab </option>
<option> abc </option>
<option> abcd </option>
</select>
これは私の検索入力です:
<div class="grid6 marginTop10px">
<input kind="<?php echo $firstKeyLeft;?>" class="entitySearch form-control-static" role="form" type="text" size="25"/>
<span class="glyphicon glyphicon-search"></span>
<label> Suchen </label>
</div>
そして今、検索キーを入力しているときに一致しないオプションを非表示にし、入力した検索キーを削除または編集する (一致するように) ときにそれらを再表示したいと考えています。
元の関連する php および html コード: http://codepad.org/4CXgkiei