0

我有这种类型的 json 输入。[ {“id1”:“val1”,“id2”:“val2”},{“id1”:“val3”,“id2”:“val4”},...]

如何在 jquery-ui 中提供的自动完成插件中解析这个?基本上我希望与 id1 对应的 val1、val3 等成为我的自动完成文本的一部分。关于如何进行此操作的任何建议?

4

2 回答 2

1

自动完成小部件需要一组简单的字符串值或具有属性的对象labelvalue或两者兼而有之。

您可以使用$.map实用程序功能获取数据并将其转换为正确的格式。这假设您正在成功发出 AJAX 请求并且数据正在返回:

$.getJSON("/url", function(data) {
    var src = $.map(function (el) {
        return el.id1;
        // or:
        // return { label: el.id1, value el.id2 };
    });

    $("#id").autocomplete({ 
        source: src
    });
});

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

于 2012-05-22T11:59:52.283 回答
0

要将 JSON 字符串转换为 JSON 对象,请使用$.parseJSON( ... ). 这var jsonstring是包含 JSON 文本的文本,仅此而已。parseJSON()如果字符串不是有效的 JSON,将失败。

var jsonobj = $.parseJSON( jsonstring );

然后使用它来插入新选项以自动完成。

jsonobj通过这种方式获取值:

alert( jsonobj.id1 ); 
alert( jsonobj.id2 ); 
于 2012-05-21T07:58:02.000 回答