わからない、あなただけのjQueryたい
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$j = jQuery.noConflict();
$j(document).ready(init);
function init()
{
$j('#MyEditBox').change(filterCombo).keyup(filterCombo);
}
function filterCombo()
{
var InputText = $j(this).val();
$j('#MyCombo option:not(:contains('+ InputText +'))').hide();
$j('#MyCombo option:contains('+ InputText +')').show();
}
</script>
</head>
<body>
<input type="text" id="MyEditBox" />
<select multiple id="MyCombo">
<option>America
<option>Australia
<option>Something else
<option>Joy is in Austria
<option>Wibble
</select>
</html>
更新:これは完全な単語にのみ一致します:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$j = jQuery.noConflict();
$j(document).ready(init);
function init()
{
$j('#MyEditBox').change(filterCombo).keyup(filterCombo);
}
function filterCombo()
{
var InputText = $j(this).val();
if (InputText.length > 0)
{
$j('#MyCombo option')
.hide()
.filter(function() { return hasWholeWord($j(this).val() , InputText) })
.show()
;
}
else
{
$j('#MyCombo option').show();
}
}
function hasWholeWord(Text , Word)
{
return (new RegExp('\\b'+Word+'\\b','i').test(Text));
}
</script>
</head>
<body>
<input type="text" id="MyEditBox" value="" />
<select multiple id="MyCombo">
<option>America
<option>Australia
<option>Something else
<option>Joy is in Austria
<option>Wibble
</select>
</html>
なぜこれが否定的な投票をしたのですか? これは私にとって有効な解決策のようです – ErsatzRyan
filterCombo()ここではdeclare.iはready関数またはoutsideの中にあることを意味します – usman
「行の中の何か」のとおり、一般的な例として意図されていました。正確なコピー貼り付けの例しかし、とにかく私はready/init関数を追加しました。 –