代码之家  ›  专栏  ›  技术社区  ›  Omar Al-Ithawi

jquery用户界面自动完成,选择后的值(用鼠标)与(用箭头键)不同

  •  5
  • Omar Al-Ithawi  · 技术社区  · 16 年前

    我在用 jQuery UI Autocomplete 1.8.1 具有 Jquery 1.4.2 我有这个问题。

    首先,我不能强制输入字段的值,这不是一个大问题。

    但我有一个问题:

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

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

    P.S:更改 选择 功能是无用的,因为它不能完成!

    5 回复  |  直到 14 年前
        1
  •  3
  •   somy    14 年前

    也可以将其添加到Select中

    select: function( event, ui ) {
        $('#input').val(ui.item.value);
    }
    
        2
  •  2
  •   Jonny White    16 年前

    我也有类似的问题。

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

    可能是在输入字段的焦点上发生了什么事情,而这正被重新触发?

        3
  •  2
  •   Marlon Vidal    14 年前

    你可以这样做:

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

    用鼠标悬停项目,将用当前值填充文本框,单击该值后,该值将显示在文本框上。

        4
  •  1
  •   palmic    14 年前

    解决方法是通过autocomplete focus回调内部的preventDefault()停止事件

        5
  •  0
  •   Omar Al-Ithawi    15 年前

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