我正在尝试使用jquery Autocomplete向我的控制器发送一个额外的参数(除了键入的键),我试图将它附加到url,如下所示但由于某种原因参数始终为空,这是我的代码:
$(document).ready(function(){
$('#classDefNode').each(function() {
$(this).autocomplete({
type:"POST",
serviceUrl: '${pageContext.request.contextPath}/getClassDefinitionName?interfaceName='+$("#interfaceDefNodeIOS").val(),
paramName: "className",
delimiter: ",",
transformResult: function(response) {
return {
//must convert json to javascript object before process
suggestions: $.map($.parseJSON(response), function(item) {
return { value: item.name, data: item.id };
})
};
}
});
});
});
我认为问题在于.ready(function())在页面加载时和输入仍为空时执行。 我也尝试使用boostrap typeahead,但我无法使其工作,它在chrome控制台中显示了错误的请求。 非常感谢你的帮助。
答案 0 :(得分:0)
您正在使用serviceUrl: 'stuff'+$("#interfaceDefNodeIOS").val()
初始化自动完成对象。在初始化时,$(“#interfaceDefNodeIOS”)为空,对吧?因此,您使用空参数初始化自动填充。在输入字段中键入内容时,此参数不会自动更新。自动复合已初始化。
从the doc开始,使用:
params:随请求传递的其他参数,可选。