如何根据输入值中的字符串过滤选择?

时间:2015-02-25 12:00:18

标签: javascript jquery

我有一个问题,我正在尝试根据输入的值过滤选择的选项,但是当发生过滤时,选择变为空。

另一个问题,我的jQuery版本是1.4.4 ......

这是我的代码:

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().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)
                    );
                }
            });
            if (selectSingleMatch === true &&
                    $(select).children().length === 1) {
                $(select).children().get(0).selected = true;
            }
        });
    });
};
$(function() {
    $('#relProducts').filterByText($('#buscarProdutosSelect'), false);
});

修改

一个奇怪的事情发生了,在代码工作的小提琴,但是当代码在应用程序上它不起作用...

这是小提琴:http://jsfiddle.net/zyx5ojty/

0 个答案:

没有答案