1

我有一个 jQuery UI 自动完成下拉菜单,我想选择其中一个选项,然后选择选项将被禁用/隐藏。例如:我有 {"good","better","best"} 选择 "better",自动完成建议列表将是 {"good","best"}。

提前致谢。

这里有详细的例子(感谢@Whitaker)

<input id="myElement" />​
var result; // should be array
$("#myElement").autocomplete({
    source: function( request, response ) {
        $.ajax({
            type: "GET",
            dataType: "json",
            url: "autocomplete.php",
            data: {
                  startsWith: request.term
            },
            async:false,
            success: function( data ) {
                result = data; // to do array assign process - not shown here
                response($.ui.autocomplete.filter(result, request.term)); 
            }   
        }); 
    }, 
    select: function(event, ui) {  
        var index = $.inArray(ui.item.value, result); 
        result.splice(index, 1); 
    }
});

jQuery ui splice() 方法适用于静态列表,但在调试 AJAX 每次单击输入元素时获取方法刷新结果的代码时,我遇到了有趣的一点。有什么方法可以在客户端工作吗?(不改变.php)

4

1 回答 1

2

如果没有更多的上下文,提供一个好的例子有点困难,但如果你的例子就是你所需要的,这应该可以工作:

var src = ['good', 'better', 'best'];
$("#auto").autocomplete({
    source: function(request, response) {
        response($.ui.autocomplete.filter(src, request.term));
    },
    select: function(event, ui) {
        var index = $.inArray(ui.item.value, src);
        src.splice(index, 1);
    }
});

Example: http://jsfiddle.net/LSMvS/

于 2012-07-05T01:50:30.083 回答