2012-10-24 23 views
2

我在網絡上找到了此示例how to search in a list box。這聽起來很不錯,但它不適用於IE。任何想法在代碼中改變它以使其在IE中工作?按文字過濾不適用於Internet Explorer

當我開始在文本框中輸入列表框的所有值就會消失。

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

當事情不特定的瀏覽器工作,始終爲您在調試控制檯例外。在這種情況下,IE的JavaScript實現中缺少修剪。 –

回答

3

改變這一行:

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

這樣:

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

謝謝! (也用於編輯...) –

相關問題