javascript - 无法从选择列表中选择值

标签 javascript jquery rest

我的选择列表是通过服务调用填充的,但我无法从选择列表中选择任何值。

AJS.$("#select2-actor").auiSelect2(
{
    placeholderOption: 'first',

    formatResult: function(actor) {
        return '<b>' + actor.text ;
    },
    data: function ()
    {
        var data = [];
        AJS.$.ajax({
            dataType: 'json',
            type: 'GET',
            url: AJS.params.baseURL+"/rest/leangearsrestresource/1.0/message/list/{actor}",
            async: false
            /*multiple: true*/
        }).done(function(result) {
            result = JSON.parse(result.value);
            for (var actor in result.actors) {
                data.push({
                    text : result.actors[actor]
                });
                //AJS.log(data)
            }
        });

        return {
            results: data
        };

    }
}

);

<div class="field-group">
    <label class="label">Actor Select</label>
    <input id="select2-actor" type="hidden" name="actor" style="width: 415px;" placeholder="Add an actor"/>

</div>

我不知道我哪里出了问题。 这是JSFiddle链接

最佳答案

这是工作 fiddle :https://jsfiddle.net/64djszjf/14/

如果你看一下源 js 文件:https://aui-cdn.atlassian.com/aui-adg/5.8.13/js/aui-experimental.js ,有几行设置 unselectable 类:

populateResults: function(container, results, query) {
var populate, id=this.opts.id;

populate=function(results, container, depth) {

    var i, l, result, selectable, disabled, compound, node, label, innerContainer, formatted;

    results = opts.sortResults(results, container, query);

    for (i = 0, l = results.length; i < l; i = i + 1) {

        result=results[i];

        disabled = (result.disabled === true);
        selectable = (!disabled) && (id(result) !== undefined);

        compound=result.children && result.children.length > 0;

        node=$("<li></li>");
        node.addClass("select2-results-dept-"+depth);
        node.addClass("select2-result");
        node.addClass(selectable ? "select2-result-selectable" : "select2-result-unselectable");

表示此js文件需要传入对象的id属性。

我的修复方法是简单地将 id 字段添加到您的 JavaScript 中:

    for (var actor in result.actors) {

    data.push({
        text : result.actors[actor],
        id: "1"

    });
    AJS.log(data)
}

这也表明您可能希望更改 REST 服务以返回 id 以及 Actor 的名称。

关于javascript - 无法从选择列表中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997162/

相关文章:

java - 使用 JAX-RS 继承

javascript - 嵌套括号在 jquery 选择器中是什么意思?

jquery - 动态导航中的水平线

c# - 通过 RESTful webservice 返回图片

javascript - 如何使用 D3.js 设置下拉列表中的最后一个选项

javascript - 输入数据后使用 jQuery 更新 div

javascript - 使用内联 JavaScript 从 cdn 导入第三方库

php - 如何在最大程度地减少重复的同时使用客户端和服务器端验证?

jquery - IE 尝试从 EE 和 jQuery 表单插件下载 json 响应

rest - Blackberry HttpConnection 和查询字符串