【问题标题】:jQuery auto complete, change event not working as expectedjQuery自动完成,更改事件未按预期工作
【发布时间】:2015-03-25 23:26:11
【问题描述】:

早安,

我有以下代码:

$("#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", "")});

其中大部分都可以完美运行,但是,似乎在更改字段时并不总是触发“更改”事件。

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

问候, 乔什

【问题讨论】:

标签: jquery jquery-ui-autocomplete


【解决方案1】:

这是替代清洁解决方案

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

此答案复制自here

【讨论】:

  • 是否解释了为什么 on('autocompletechange') 有效,而自动完成小部件的更改事件却没有按预期工作?
  • 我不是 100% 确定,但我发现它不适合我,因为 jquery 旧版本
  • 我会使用 .on("autocompletechange keyup") 考虑到如果您不模糊该字段,则不会触发更改事件。
猜你喜欢
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多