Ho appena implementato questa funzione rapida e sporca. Usa alcune variabili globali, potresti voler migliorare l'implementazione per rimuoverle.
Qui il '#xsca_member_filter' è il filtro come input di testo e '#members' è l'input di selezione.
$('documenet').ready(function(){
init();
$('#xsca_member_filter').keyup(function(){
filter($(this));
});
});
//save all available options with their values and the empty option.
init = function(){
options = new Object();
$('#owner option').each(function(){
var obj = $(this);
if(obj.attr("value") != "")
options[obj.attr('value')] = obj.html();
else
emptyOption = obj.html();
});
selObj = $('#owner');
};
filter = function(elem){
var filter = elem.val();
var selected = $('#owner option:selected').val();
//delete all options and add the empty option
selObj.html("");
selObj.append("<option> "+emptyOption+" </option>");
//add all options conaining the filter string
for(value in options){
var option = options[value];
if((options[value]).indexOf(filter) != -1){
selObj.append("<option value='"+value+"'> "+options[value]+" </option>");
}
}
//select the previously selected option
$("#owner option[value = '"+selected+"']").prop("selected", true);
}
Questo è esattamente ciò che cercavo. Ti dispiacerebbe se qualcuno lo abbia confezionato come plugin JQuery e lo abbia distribuito? Il mese prossimo sto pensando di rilasciare alcuni plugin e questo ne farebbe uno buono. –
Vai per questo. Magari rimanda alla pagina originale della fonte, se va bene? –
Sì certo, se verrà mai rilasciato! Sono stato seduto su un carico di codice che ho intenzione di rilasciare come plugin JQuery/prototipo dall'inizio dell'anno. –