jQuery自动完成,更改事件未按预期工作

jQuery自动完成,更改事件未按预期工作,jquery,jquery-ui-autocomplete,Jquery,Jquery Ui Autocomplete,早上好 我有以下代码: $("#close-request-field-clinic").autocomplete({ source: arrayClinic, delay: 0, minLength: 0, isDivider: function( item ) { return false; },

早上好

我有以下代码:

$("#close-request-field-clinic").autocomplete({
                source: arrayClinic,
                delay: 0,
                minLength: 0,
                isDivider: function( item ) {
                  return false;
                },
                focus: function ( event, ui ) {
                    $('#close-request-field-clinic').val( ui.item.label );
                    return false;
                },
                select: function( event, ui ) { 
                    $('#close-request-field-clinic').val( ui.item.label );
                    if(ui.item.value == -1) {
                        resetField('#close-request-field-clinic', false);
                    } else {
                        successField('#close-request-field-clinic');
                        setKey(finalValues, 'clinic', ui.item.value);
                        if(msieversion()) {
                            $(this).blur();
                        }
                    }
                    checkValidation(fieldCheck,'#close-request-personal-information-next');
                    return false;
                },
                change: function( event, ui ) {
                    alert('change');
                    if(!ui.item) {
                        resetField('#close-request-field-clinic', false);
                        removeKey(finalValues, 'clinic');
                    }
                    checkValidation(fieldCheck,'#close-request-personal-information-next');
                    return false;
                }
            }).focus(function(){$(this).autocomplete("search", "")});
大多数情况下都能很好地工作,但是,当字段更改时,似乎并不总是触发“更改”事件

从列表中选择元素时,它可以正常工作,但是如果使用退格(删除)键删除框中的值,然后单击文本框,则更改事件仅在有时调用。有什么我遗漏的吗?。。似乎只有在手动删除值时才会调用它

问候,,
Josh

这是另一种清洁的解决方案

$("#close-request-field-clinic").on("autocompletechange", function(event,ui) {
       alert($(this).val());
    });

这个答案是从

的可能副本中复制的,有没有解释为什么on('AutoCompleteTechange')可以工作,而autocomplete小部件的更改事件不能按预期工作?我不是100%确定,但我发现它对我不起作用,因为jquery旧版本会使用.on('AutoCompleteTechange keyup')考虑到如果不在字段外模糊,则不会触发更改事件。