jQuery用户界面自动完成:从没有修改列表选择强制执行(jQuery UI autocomplet

2019-09-01 23:26发布

我使用的是自定义绑定提供了自动完成组合框淘汰赛JS模板/ JQuery的

我需要强制用户必须在自动完成列表中选择一个值,他们选择的值之后,不能附加文本添加到选择。 我已经搜查,但我无法找到如何防止额外的文本被输入了一个例子。 柜面他们选择了错误的下拉,但他们的类型必须100%从列表中的值匹配的内容必须留编辑。

我发现这个 jQuery的,但其9个月大帖子,没有一个张贴解答。

Answer 1:

没有内置的功能做你想做什么。

我在那里使用自动完成做了一个简单的项目change事件中,你必须选择从自动完成的值,如果没有值将被删除。

更改事件

当现场模糊,如果该值已更改时触发。

选择后场致残,你可以使用活化锚(例如)激活它。

码:

$("#artist").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "http://en.wikipedia.org/w/api.php",
            dataType: "jsonp",
            data: {
                'action': "opensearch",
                    'format': "json",
                    'search': request.term
            },
            success: function (data) {
                response(data[1]);
            }
        });
    },
    change: function (event, ui) {
        if (ui.item == null || ui.item == undefined) {
            $("#artist").val("");
            $("#artist").attr("disabled", false);
        } else {
            $("#artist").attr("disabled", true);
        }
    }
});

$('#changeArtist').click(function (e) {
    e.preventDefault();
    $("#artist").attr("disabled", false);
});

这里是一个小提琴: http://jsfiddle.net/IrvinDominin/nH4Nx/



Answer 2:

这是一个较旧的职位,但我认为这是从UX的角度轻度不全,由于焦点问题(直到焦点从输入删除不做出改变,在这种情况下,“#artist”,相当烦人)所以我想补充:

   select: function (event, ui) {
        $("#artist").attr("disabled", false);
    }

所以(我们假设这是我们正在努力实现一个按钮),用户可以立即看到在选择启用对象。



文章来源: jQuery UI autocomplete: enforce selection from list without modifications