人々。 JakeCigarFiddle
HTML::
<input id="usrSearch" type="search" placeholder="Filter..." style="width: 154px; height: 25px; margin-bottom: 5px; margin-top: 2px; margin-right: 1px; border-width:4px; border-radius:10px;" />
<select name="leftSrcBox" id="srcBox" style="border-width: 4px; padding: 4px; border-radius: 10px; width: 200px; height: 400px;" size="4">
<option class="srcItem" value="72371">Adam Sandler</option>
<option class="srcItem" value="95310">Adam Boldwin</option>
<option class="srcItem" value="54288">Adam Eve</option>
<option class="srcItem" value="90217">Boris Johnson</option>
<option class="srcItem" value="74724">Boris Bekker</option>
<option class="srcItem" value="54536">Bob Dylan</option>
<option class="srcItem" value="36202">Carl Sagan</option>
<option class="srcItem" value="5975">Carl Booker</option>
<option class="srcItem" value="38307">Cory Sanders</option>
<option class="srcItem" value="92817">David Whealan</option>
<option class="srcItem" value="8730">David Hurst</option>
<option class="srcItem" value="30775">Danny Sanders</option>
<option class="srcItem" value="78253">Dan Dover</option>
<option class="srcItem" value="95183">Ethan Jenkins</option>
<option class="srcItem" value="31344">Ethan Hunt</option>
<option class="srcItem" value="57950">Edgar Pugh</option>
<option class="srcItem" value="36384">Ed Wilkins</option>
<option class="srcItem" value="36715">Fred Jefferson</option>
<option class="srcItem" value="65292">Freddy Mercury</option>
<option class="srcItem" value="47803">Gina Davis</option>
<option class="srcItem" value="48991">Giovanni Bonucci</option>
<option class="srcItem" value="54213">Heather Stevens</option>
<option class="srcItem" value="45948">Hector Wallas</option>
<option class="srcItem" value="44818">Igor Biskan</option>
<option class="srcItem" value="95863">Iggy Pop</option>
<option class="srcItem" value="48637">Jacob Allen</option>
<option class="srcItem" value="45658">Jacob Collins</option>
</select>
JS: はここに解決策が含まれていますフィドルある
$(function() {
var $select = $("#srcBox").clone();
$('#usrSearch').keyup(function() {
var currentValue=$("#srcBox").val();
var search = squeeze($(this).val());
$("#srcBox").html($select.children().clone().filter(function() {
return squeeze($(this).text()).match(search)
})).val(currentValue)
});
});
function squeeze(v) {
return v.replace(/\s+/g, ' ').toLowerCase();
}
JakeCigarの説明:
$(function() { // wait till the DOM is ready
var $select = $("#srcBox").clone(); // save off an untouched copy of the select.
$('#usrSearch').keyup(function() {
var currentValue=$("#srcBox").val(); // remember what was selected
var search = squeeze($(this).val()); // squeeze what they typed in
// this is where is gets complex.
// set the srcBox to a new clone of the clone that was filtered
// then set the value back to what was selected
$("#srcBox").html($select.children().clone().filter(function() {
return squeeze($(this).text()).match(search)
})).val(currentValue)
});
});
function squeeze(v) { // since you need to squeeze both the text and the option values
// I moved it out to a function
return v.replace(/\s+/g, ' ').toLowerCase();
}
//No need to write special code for IE, because it is classic jQuery code.
私はあなたがjQueryのを使用していると思いますバージョンはIEブラウザをサポートしていません。jquery.comからgeにアクセスしてください完全なバージョン – kollein
これは、表示をサポートしていないInternet Explorerです。 「選択」要素内の「オプション」要素上にある。 –
'show'と' hide'は問題がありますが、これがあなたの問題であるかどうかは分かりません。 – gcampbell