0

所以本质上,我试图转移到一个函数,该函数为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 默认样式表,尽管它在此之前工作。我觉得我错过了功能回调应该如何工作的一些非常基本的东西。有人能发现问题吗?谢谢您的帮助。

4

1 回答 1

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
                        });
于 2012-10-10T17:22:17.190 回答