jquery ui autocomplete:如何在选择完成之前保持选择列表处于打开状态

时间:2011-01-25 03:57:43

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

我想强制用户从jquery自动完成ui的下拉列表中选择一些内容。我尝试使用“close”事件在函数中返回false,但这不起作用。如何在用户进行选择之前保持选择列表处于打开状态?

对于那些需要看到它的人, http://smartsend.ontech.com.au/quote 输入四个字母的邮政编码   - 我想保持这个清单。

由于

杰森

2 个答案:

答案 0 :(得分:2)

为重新打开结果的close事件添加自定义处理程序确实有效,但是有点烦人,因为结果永远无法关闭。我希望结果在用户进行选择后保持打开状态,以便他们可以选择更多,但如果用户没有做出选择并在其他地方点击,或者如果用户点击转义,或者删除输入文本,则关闭,或做任何其他通常会关闭结果的事情。这对我有用:

close : function (event, ui) {
    event.preventDefault();

    if ( event.which == 1 ) {
        $("ul.ui-autocomplete").show();
        $("ul.ui-autocomplete").data('keep-open', 1);
    }
    else if ( $("ul.ui-autocomplete").data('keep-open') == 1) {
        $("ul.ui-autocomplete").show();
        $("ul.ui-autocomplete").data('keep-open', 0);
    }

    return false;
}

当用户进行选择时,event.which为1,然而,另一个关闭事件将立即跟随并关闭结果。所以我添加了保持打开标志。也许有更好的方法来处理这种复杂情况。

注意,我还添加了一个简单的关闭按钮,以便用户在完成选择后手动关闭结果。

答案 1 :(得分:1)

我找不到办法,所以我使用了块UI插件