Javascript 模糊后自动完成触发的两个事件

Javascript 模糊后自动完成触发的两个事件,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,所以我今天使用的是autocomplete,通常我没有问题,但是今天,当我从列表中选择项目或只是使用键入的值时,我遇到了一个奇怪的情况。如果我从事件触发一次的列表中选择该项目,如果我在“然后”选项卡中键入该项目到下一个字段,它似乎会触发选择和更改事件。我只希望事件触发一次,无论我在做什么动作 我想关于这个问题的另一个问题是,为什么会发生这种情况 我已经把代码放在下面了。如果有任何问题,请询问 代码 尝试删除select事件的init。@pratikwebdev我之前确实尝试过,但也失败了。您可以

所以我今天使用的是autocomplete,通常我没有问题,但是今天,当我从列表中选择项目或只是使用键入的值时,我遇到了一个奇怪的情况。如果我从事件触发一次的列表中选择该项目,如果我在“然后”选项卡中键入该项目到下一个字段,它似乎会触发选择和更改事件。我只希望事件触发一次,无论我在做什么动作

我想关于这个问题的另一个问题是,为什么会发生这种情况

我已经把代码放在下面了。如果有任何问题,请询问

代码


尝试删除select事件的init。@pratikwebdev我之前确实尝试过,但也失败了。您可以共享JSFIDLE吗?FIDLE无法与我拥有的上述代码一起使用,因为它使用了一个不公开可用的Interesting扩展名。我会尝试删除事件的默认值,看看默认行为是否解决了问题。在自动完成关闭时调用Change事件,即使您在选择时阻止该事件,它仍将关闭。
$('#ee_id').autocomplete({
    delay : 0,
    source : "<?=APP_BASE?>/assets/server/autocomplete/geteeid.php",
    select : function(event, ui){
        event.preventDefault();
        koolajax.callback(getEmployeeInformation(ui.item.value), getEmployeeInformationDone);   
    },
    change : function(event, ui){
        event.preventDefault();
        var value = $(this).val();
        koolajax.callback(getEmployeeInformation(value), getEmployeeInformationDone);   
    }
});

function getEmployeeInformationDone(response){
    if(response.status){
        $('#comcheckRequestForm').find('input, select, textarea').not($('#ee_id, #temp_agency, #purpose_code__id, #sender, #date')).prop('disabled', false);
        $('#first_name').val(response.first_name);
        $('#last_name').val(response.last_name);
        $('#temp_agency').prop('disabled', true);
    }else{
        bootbox.alert({
            message : response.error,
            backdrop : false,
            callback : function(){
                $('#comcheckRequestForm').find('input, select, textarea').not($('#ee_id, #temp_agency, #purpose_code__id, #sender, #date')).prop('disabled', true);
                $('#first_name').val('');
                $('#last_name').val('');
                $('#ee_id').focus();
            }
        });
    }
}