【问题标题】:Format jquery ui autocomplete xml格式化jquery ui自动完成xml
【发布时间】:2014-01-21 13:29:24
【问题描述】:

需要在我的“完成”父项的“完成”标签中填充我的自动建议值,我的警报工作正常并返回数据,但我无法将其加载到我的自动建议结果中......任何帮助将不胜感激。

这是我的 xml 结构:

     <Completions>
<Term>maz</Term>
<Completion profile="test">mazda</Completion>
<Completion profile="test">mazdak</Completion>
<Completion profile="test">maza</Completion>
<Completion profile="test">maz</Completion>
<Completion profile="test">mzx</Completion>
</Completions>

<script>
    $(function() {
    // add autocomplete
    $("#query.queryAutocomplete").autocomplete({
        source: function(request, response) {
            var myArr = [];
            $.ajax({
             type: "GET",
             url: "searchlogic.asp",
             //complete: setupAC,
             contentType: "application/xml; charset=utf-8",
             dataType: 'xml',
                data: {             
                    pr: $("input[name='pr']").val(),
                    term: request.term              

                },          
                //success: function( data ) {
                   // alert(data);
                  //},

                  success: function(responseXML) {
            alert($(responseXML).text());
       },




    error: function(e) {
       alert(e.message);
    }
            });
        },
        minLength: 1,
         open: function (e, ui) {
            var term = $("#query").val();

            var acData = $(this).data("uiAutocomplete");
            acData.menu.element.find("a").each(function () {
                var a = $(this);
                var completion = a.text().substring(term.length);
                a.html("<span class='ui-autocomplete-term'>" + term + "</span>" + "<span class='ui-autocomplete-completion'>" + completion + "</span>");
            });
        },
        select: function(event, ui) {
            $("#query").val(ui.item.value)
                .closest("form").submit();
        },

    });
});

<input class="queryAutocomplete" id="query" type="textbox" name="query" value=""/>
<input type="hidden" name="pr" value="test">
<input type="submit" class="searchbutton" value="Search">

【问题讨论】:

    标签: javascript jquery xml jquery-ui autocomplete


    【解决方案1】:

    您可能需要将您的 XML 转换为 Html 并将每个元素转换为表单

    <Completion profile="test">whatever</Completion>
    

    然后使用 jQuery append 将它们附加到完成中

    示例(我使用 UL 和 LI 代替 op Completion 使事情可见):

    fiddle

    在你的情况下,这会导致类似

    var newItems = '<Completion profile="test">[new var 1]</Copmletion><Completion profile="test">[new var 2]</Copmletion>';
    $("Completions").append(newItems);
    

    Id 建议在您的“Completions”标签上使用 和 Id,以避免干扰其他集合(如果有/将会有)。

    【讨论】:

    • 我想我需要做什么才能找到 xml 标签然后解析它,而不仅仅是转换
    • 你读过这篇文章吗? stackoverflow.com/questions/6328481/…
    • 当我追加数据时,数据现在显示在 div 上,但仍然没有自动 com 成功:function(responseXML) { //($(responseXML).find('Completion').text ()); $(responseXML).find("Completions").each(function () { $(".main").append('
      • ' + $(this).find("Completion").text () + '
      '); //$(".book").fadeIn(1000); }); },
    • 我在示例中使用了 UL 和 Li,但在自动完成中您可能不需要。
    • 是的,仍然没有解决问题,它只是为了测试。
    猜你喜欢
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2017-08-27
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多