函数作为源的JQuery UI自动完成代码问题

时间:2012-10-10 16:52:33

标签: javascript jquery jquery-ui

基本上,我试图转移到一个为自动完成方法中的source参数工作的函数,现在脚本已经坏了。即使$.get(...)请求返回了值,也不会在输入时显示任何选项。

HTML:

           <tr class="itemTableRow">
                <td>
                    <input type="text" class="item" name="items[]" />
                </td>
                <td>
                    <input type="range" class="quantity" min="1" max="10000" name="quantity[]" />
                </td>
                <td>
                    <select class="versionSelect"><option value="5">5</option><option value="6">6</option><option value="7">7</option></select>
                </td>
            </tr>

Javascript:

 $(function() {

            $( ".item" ).autocomplete({
                            source: function(request, response){var data = $.get("http://mydomain.com/dev/kohana/utils/items/search?searchType=maxList&amp;term=" + request.term + "&amp;version=" + $(".item").parent().parent().children(":nth-child(3)").children("select").val()); console.log("" + data); response(data);},
                            minLength: 2
                        });
});

生成的HTTP GET请求URL(在输入字段中输入CP时):

http://mydomain.com/dev/kohana/utils/items/search?searchType=maxList&term=CP&version=5

生成的HTTP响应正文:

[{"label":"CP1031L","value":"CP1031L"},{"label":"CP1031M", "value":"CP1031M"]

我也在页面上包含了Jquery UI默认样式表,尽管之前它已经工作了。我觉得我缺少一些非常基本的函数回调应该如何工作。有人能发现问题吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您应该在response(data)来电的成功处理程序上拨打.get(),如下所示:

$( ".item" ).autocomplete({
                            source: function(request, response){var data = $.get("http://mydomain.com/dev/kohana/utils/items/search?searchType=maxList&amp;term=" + request.term + "&amp;version=" + $(".item").parent().parent().children(":nth-child(3)").children("select").val(), function(data) {response(data);});},
                            minLength: 2
                        });