以前我問如何做到這一點,並引導到這一點:過濾只有先前未<select>選項qith JQuery的
<script>
jQuery.fn.filterByText = function(textbox) {
return this.each(function() {
var select = this;
var options = [];
$(select).find('option').each(function() {
options.push({value: $(this).val(), text: $(this).text()});
});
$(select).data('options', options);
$(textbox).bind('change keyup', function() {
var options = $(select).empty().scrollTop(0).data('options');
var search = $.trim($(this).val());
var regex = new RegExp(search,"gi");
$.each(options, function(i) {
var option = options[i];
if(option.text.match(regex) !== null) {
$(select).append(
$('<option>').text(option.text).val(option.value)
);
}
});
});
});
};
</script>
(http://www.lessanvaezi.com/filter-select-list-options/)
當我使用此過濾器的選擇框它過濾既未選中和選中。我希望它僅篩選未選中的項目,因爲如果用戶想要重新選擇篩選項並重新篩選,則先前選擇的項目將消失 - 除非它們符合篩選條件。
我並不擅長JavaScript或JQuery,也無法理解我如何告訴上面的腳本忽略「:selected」但是過濾所有其他選項的選項。
這裏有一個jfiddle如果有幫助:http://jsfiddle.net/UmKXy/我希望選項一和二保持選擇,並在用戶開始鍵入時在列表中。
感謝您的幫助!
你應該提供一個jsfiddle也許 –