基本上,我试图转移到一个为自动完成方法中的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&term=" + request.term + "&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默认样式表,尽管之前它已经工作了。我觉得我缺少一些非常基本的函数回调应该如何工作。有人能发现问题吗?谢谢你的帮助。
答案 0 :(得分:1)
您应该在response(data)
来电的成功处理程序上拨打.get()
,如下所示:
$( ".item" ).autocomplete({
source: function(request, response){var data = $.get("http://mydomain.com/dev/kohana/utils/items/search?searchType=maxList&term=" + request.term + "&version=" + $(".item").parent().parent().children(":nth-child(3)").children("select").val(), function(data) {response(data);});},
minLength: 2
});