Вот скрипт фильтрации select через input. Но работает только в раскрывающимся режиме. Вопрос: почему?
;(function($) {
$.fn.selectFilter = function() {
var self = $(this);
var name = self.attr("name").replace(/\]/g, '').replace(/\[/g, '')
var clone = self.html();
var iname = name;
if(self.attr("size")<2)
{
self.attr("size", "3");
}
self.addClass(name + "_select")
.css({"display": "block","width":"200px"})
.after("<input id='input_" + iname + "' style='display: block; width:190px;' type='text' />");
$("#input_" + iname).live("keyup", function() {
$("." + name + "_select").html(clone);
var a = new Array();
var txt = $(this).val().toLowerCase();
$("." + name + "_select").children('option').each(function(i, selected) {
var pattern = new RegExp(txt);
var value = $(this).text().toLowerCase();
if (!pattern.test(value)) {
$(selected).remove();
}
});
});
self.live("click",function() {
$("#input_" + name).val($("." + name + "_select option:selected").text());
$("." + name + "_select").html(clone);
});
return this;
};
})(jQuery);