JQuery UI自动完成,选择后的值(通过鼠标)与(通过箭头键)不同

时间:2010-06-16 18:11:13

标签: jquery jquery-ui select jquery-autocomplete

我正在jQuery UI Autocomplete 1.8.1使用Jquery 1.4.2,我遇到了这个问题。

首先,我无法强制自动完成输入字段的值,这不是一个大问题。

但我有这个问题:

当用户select使用鼠标选择使用键盘箭头时,我的行为不同。当使用键盘时,一切都很好,并且在输入文本框中选择后显示值,但是当使用鼠标时,它会粘贴旧的(键入的)值而不是选定的值。

如何控制(选择后的文本框值)?为什么有不同的行为?

P.S:改变select函数内输入框的值是没用的,因为它无法完成!

5 个答案:

答案 0 :(得分:3)

或者您可以在选择

中添加它
select: function( event, ui ) {
    $('#input').val(ui.item.value);
}

答案 1 :(得分:2)

我遇到了类似的问题。

使用键盘时,文本框中的焦点会丢失,但点击后焦点会返回到文本框。

可能是您在输入字段的焦点上发生了重新触发的事情?

答案 2 :(得分:2)

您可以这样做:

$('#input').autocomplete({
   source: items,
   focus: function(event, ui) { var text = ui.item.value; 
   $('#input').val(text); 
   return false; 
   }
});

使用鼠标悬停项目,将使用当前值填充文本框,当您单击该文本框时,该值将显示在文本框中

答案 3 :(得分:1)

sollution是通过自动完成焦点回调中的preventDefault()来停止事件

答案 4 :(得分:0)

我无法以完美的方式解决它,所以我设法隐藏select上的搜索输入字段并显示另一个自定义的div,点击传递给jQuery UI再次搜索input