Dans le plugin ui.combobox :
J'ai ajouté à la fin de la méthode de sélection :
$(input).trigger("change", ui);
j'ai ajouté avant le "var input ..." :
select.attr('inputId', select.attr('id') + '_input');
ensuite, pour avoir un événement onchange fonctionnel... sur ui.combobox j'ai commenté la méthode change et déplacé son code vers la méthode checkval qui étend ui.autocomplete :
$.extend( $.ui.autocomplete, {
checkVal: function (select) {
var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex($(this).val()) + "$", "i"),
valid = false;
$(select).children("option").each(function () {
if ($(this).text().match(matcher)) {
this.selected = valid = true;
return false;
}
});
if (!valid) {
// remove invalid value, as it didn't match anything
$(this).val("");
$(select).val("");
$(this).data("autocomplete").term = "";
$(this).data("autocomplete").close();
}
}
});
et j'ai codé la méthode de changement d'entrée comme suit :
var oCbo = ('#MyCbo').combobox();
$('#' + oCbo.attr('inputId')).change(function () {
// from select event : check if value exists
if (arguments.length < 2) {
$.ui.autocomplete.checkVal.apply(this, [oCbo]);
}
// YOUR CODE HERE
});