jquery autocomplete:如何再次显示建议列表?

时间:2011-12-05 07:57:59

标签: jquery autocomplete

jquery,带自动填充的文本框,更改事件问题:

我有一个文本框,用于显示一些建议(无关紧要)。 没问题,效果很好,但我有很大的问题要解决这个问题:

  1. 用户在文本框中输入一些字符,例如“abcd”。
  2. 显示建议清单
  3. 用户离开文本框而不是选择建议。 表示自动填充文本框仍包含字符“abcd”。
  4. 我想要的: 当用户再次点击自动填充文本框时,应再次显示“abcd”的建议列表。

    提前谢谢。

3 个答案:

答案 0 :(得分:1)

我会在焦点上做这样的事情

$("input#searchField").focus(function(){
    $(this).autocomplete( "search" , this.value );
});

答案 1 :(得分:0)

$("input#myTextbox").focus(function() { 
    showSuggestions($("input#myTextbox").val()); 
});

假设您有showSuggestions函数,该函数将文本作为参数显示建议列表。

答案 2 :(得分:0)

显示一些代码,以便我们了解您正在尝试做什么...... 如果您正在使用在数据库上运行查询的脚本来获取建议?那么我认为这应该有所帮助,因为我正在使用它在我的网站上完成同样的事情。

var suggest = {
    url:'',
    search_form:'searchform',
    results_box:'',
    selected_result:undefined,
    had_focus:false,

    init:function() {
        if ( $('suggest_results') == undefined )
            return;

        suggest.results_box = $('suggest_box');
        suggest.results_box.hide();

        var s = $('s');
        s.setAttribute("autocomplete","off");
        s.setAttribute("placeholder","Search");
        s.onkeypress = suggest.noEnter;
        new Form.Element.Observer(s, 1.0, suggest.show_results);
        Event.observe(s, "keypress", suggest.handleKeypress, false);

        Event.observe(s, "blur", suggest.lostFocus, false);
        Event.observe(s, "change", suggest.lostFocus, false);
        Event.observe(s, "focus", suggest.focus, false);
        Event.observe(suggest.results_box, "mousemove", function(event){ suggest.updateSelection(undefined);})
        //Event.observe(suggest.suggest_box, "mouseover", function(event){ suggest.updateSelection(undefined);})
        suggest.show_page(s.value, 1);
    },