JQuery自动完成帮助

MrJ*_*low 14 javascript jquery jquery-ui javascript-events

我有一个自定义的JQuery自动完成控件,声明是这样的.

$('#SystemCode_Autocomplete').autocomplete({
    source: [{"label":"Access","value":0},{"label":"Documentum","value":0}], //move values
    minLength: 1,
    change: function(event, ui) {// some function},
    select: function(event, ui) {// some function}
});
Run Code Online (Sandbox Code Playgroud)

更改和选择事件是自定义的.问题是如果我在文本框中键入内容然后单击提交按钮(即没有标签输出或丢失焦点),或者如果我在键入文本框后按键提交,则不会触发更改事件,它必须在我提交之前.

我希望不要在提交按钮后面放置javascript,并且理想情况下在自动完成控件本身内执行此操作.我尝试将更改添加到模糊事件.

${'foo').blur(function() { $('bar').trigger('autocompletechange');
// or
${'foo').blur(function() { $('bar').change();
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作,任何人都有任何想法?

use*_*167 0

焦点功能自动完成

在焦点移动到某个项目(而不是选择)之前, ui.item 引用焦点项目。焦点的默认操作是将文本字段的值替换为焦点项目的值,但前提是焦点事件是由键盘交互触发的。取消此事件会阻止更新值,但不会阻止菜单项获得焦点。

解决这个问题:

    $('#SystemCode_Autocomplete').autocomplete({
        source: [{"label":"Access","value":0},{"label":"Documentum","value":0}], //move values
        minLength: 1,
        focus: function( event, ui ) {
            return false;
        },
        select: function(event, ui) {
            alert('Select Event:'+ui.item.value);
        }
    });
Run Code Online (Sandbox Code Playgroud)