Javascript 单击jQuery UI自动完成时禁止输入的更改
我有一个使用jQueryUIAutoComplete的文本输入元素。该输入绑定了一个onchange事件,以根据用户的选择更改其他一些表单值。我还想在用户从自动完成中选择选项时更改其他表单值 问题是,如果用户正在查找啤酒,但只键入bee,然后单击autocomplete中的beer选项,则输入的onchange将以bee值触发,然后autocomplete的select函数将以正确的beer值触发。由于这两个处理程序都使用ajax调用来查找某些内容,因此我陷入了竞争状态 我的问题是:在用户单击自动完成选项的情况下,是否有某种方法可以使onchange不启动或中止。注意:这仅在单击时发生,仅使用键盘选择选项不会触发输入的onchange 当自动完成处于活动状态时,我不能完全禁用onchange,因为可以相信,用户只会继续键入,然后退出输入,而不会从自动完成中选择任何内容Javascript 单击jQuery UI自动完成时禁止输入的更改,javascript,jquery,jquery-ui,javascript-events,jquery-ui-autocomplete,Javascript,Jquery,Jquery Ui,Javascript Events,Jquery Ui Autocomplete,我有一个使用jQueryUIAutoComplete的文本输入元素。该输入绑定了一个onchange事件,以根据用户的选择更改其他一些表单值。我还想在用户从自动完成中选择选项时更改其他表单值 问题是,如果用户正在查找啤酒,但只键入bee,然后单击autocomplete中的beer选项,则输入的onchange将以bee值触发,然后autocomplete的select函数将以正确的beer值触发。由于这两个处理程序都使用ajax调用来查找某些内容,因此我陷入了竞争状态 我的问题是:在用户单击自
我已经做了相当多的console.log'ing,onchange事件在我能想到的所有其他事件之前触发,包括输入的focusout、自动完成项的focus等等。这个问题正是自动完成事件的原因。听起来您应该能够利用此事件根据用户是否选择了项目来执行逻辑,从而删除onchange和autocompleteselect事件处理程序。例如:
$("#auto").autocomplete({
source: ['hi', 'bye', 'foo', 'bar'],
change: function (event, ui) {
if (ui.item) {
/* user selected an item */
} else {
/* user entered a new item */
}
}
});
示例:Andrew-非常感谢。“这种改变方法的使用正是我所需要的。”安德烈·希特克对此有何想法?