Просто используйте событие change
, чтобы увидеть, определено ли ui.item
:
/* snip */
change: function (event, ui) {
if (!ui.item) {
this.value = 'Any City';
}
}
Обновленный пример: http://jsfiddle.net/FL7Nx/
Согласно вашему комментарию ниже, если вы хотите динамически определить, к чему должно возвращаться значение по умолчанию, вы можете присвоить это значение выбранной опции в методе _create
виджета:
_create: function() {
var self = this,
select = this.element.hide(),
selected = select.children(":selected"),
value = selected.val() ? selected.text() : "",
defaultValue = value;
Затем в функции change
:
change: function (event, ui) {
if (!ui.item) {
this.value = defaultValue;
}
}
Обновленный пример: http://jsfiddle.net/jmdx4/