按文本筛选不在Internet Explorer中工作

时间:2012-10-24 16:02:01

标签: javascript internet-explorer

我在网上找到了这个例子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);
});

1 个答案:

答案 0 :(得分:3)

更改此行:

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

到此:

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