jquery-ui自动完成功能未在输入时选择

时间:2010-07-28 20:59:25

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete

我已经使用jquery-ui自动完成输入框并从所选项目中设置隐藏值。

我使用了

 select: function(event, ui) { ...$("#myDiv").val(ui.item.value)... } 

选项(现在可能有问题,手头没有代码,但直到我的问题才能解决......)

当使用鼠标从菜单中选择项目时,它可以正常工作,但是如果我只输入一些文本并选择带有回车的项目 - 它不会执行任何操作,就好像自动完成时根本不运行选择功能。但是,开箱即用的标签会触发选择。

我已经使用了焦点并进行了更改:还要更新我想要的字段,但我觉得这有点过分,如果确实需要指定所有焦点,更改和选择,只是为了确保用户选择列表中的项目实际上会被选中。

谢谢。

rofly:我使用的是jquery-ui自动完成,它有你给的代码,但它看起来像这样(来自jquery.ui.autocomplete.js)


case keyCode.ENTER:
                case keyCode.NUMPAD_ENTER:
                    // when menu is open or has focus
                    if ( self.menu.active ) {
                        event.preventDefault();
                    }
                    //passthrough - ENTER and TAB both select the current element
                case keyCode.TAB:
                    if ( !self.menu.active ) {
                        return;
                    }
                    self.menu.select( event );
                    break;

看起来很花花公子,所以我不确定它是否会因此而失败。

我的代码是这样的(包含在document.read()

$("#someDiv").attr("autocomplete", 'off');
$("#someDiv").autocomplete({
source: function(request, response) {
if ( request.term in cache ) {
response( cache[ request.term ] );
return;
}
$.ajax({
url: "giveMeJSON.jsp",
dataType: "json",
data: request,
success: function( data ) {
cache[ request.term ] = data;
response( data );
}
})},
minLength: 1,
delay: 300,
select: function(event, ui) {
$("#someDiv").val(ui.item.label);
$("#hiddenDiv").val(ui.item.value);
}
});

所以,问题是,当用户使用鼠标选择菜单时,当用于从字段中选择Tab键时(keyUp,keyDown选择然后选项卡输出,工作)但keyUp,keyDown选择itme,然后进入,没有任何反应!

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:2)

这对我有用,我在自动完成后提交了一份表格。

    $("input#searchbox").autocomplete({
  source: autocomplete,
  select: function(event, ui) {  }
    $("input#searchbox").val(ui.item.value);
    $("#searchform").submit();
  }
})

Search on Click with Jquery's Autocomplete

答案 2 :(得分:1)

有这个参数吗?设置
autoFocus:true

请在此处查看答案:https://stackoverflow.com/a/9243511/74585