我在网上找到了这个例子how to search in a list box。这听起来很不错,但它不适用于IE。知道在代码中要改变什么以使其在IE中工作吗?
当我开始在文本框中输入时,列表框的所有值都会消失。
jQuery.fn.filterByText = function(textbox, selectSingleMatch) {
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().data('options');
var search = $(this).val().trim();
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)
);
}
});
if (selectSingleMatch === true && $(select).children().length === 1) {
$(select).children().get(0).selected = true;
}
});
});
};
$(function() {
$('#select').filterByText($('#textbox'), true);
});
答案 0 :(得分:3)
更改此行:
var search = $(this).val().trim();
到此:
var search = $.trim($(this).val());