2

我找到了这个示例如何在网络上的列表框中进行搜索。这听起来很不错,但它在 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);
});
4

1 回答 1

3

更改此行:

var search = $(this).val().trim();

对此:

var search = $.trim($(this).val());
于 2012-10-24T16:11:10.847 回答