jQuery UI自动完成 - 选择后禁用所选选项

时间:2012-07-04 14:44:11

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

我有一个jQuery UI自动完成下拉列表,我想选择其中一个选项,之后选择选项将被禁用/隐藏。例如:我有{“好”,“更好”,“最好”}选择“更好”,自动填充建议列表将是{“好”,“最好”}。

提前致谢。

这里有详细的例子(感谢@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)

1 个答案:

答案 0 :(得分: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);
    }
});

示例: http://jsfiddle.net/LSMvS/