我正在jQuery UI Autocomplete 1.8.1
使用Jquery 1.4.2
,我遇到了这个问题。
首先,我无法强制自动完成输入字段的值,这不是一个大问题。
但我有这个问题:
当用户select
使用鼠标选择使用键盘箭头时,我的行为不同。当使用键盘时,一切都很好,并且在输入文本框中选择后显示值,但是当使用鼠标时,它会粘贴旧的(键入的)值而不是选定的值。
如何控制(选择后的文本框值)?为什么有不同的行为?
P.S:改变select
函数内输入框的值是没用的,因为它无法完成!
答案 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
。