使用 jquery 自动完成在 URL 中传递额外参数
passing an extra parameter in URL using jquery autocomplete
我正在尝试使用 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 控制台中显示错误请求。
非常感谢您的帮助。
您正在使用 serviceUrl: 'stuff'+$("#interfaceDefNodeIOS").val()
初始化自动完成对象。在初始时间,$("#interfaceDefNodeIOS") 是空的,对吧?所以你用一个空参数初始化自动完成。当您在输入字段中键入内容时,此参数不会自动更新。自动完成已经初始化。
来自 the doc,使用:
params: Additional parameters to pass with the request, optional.
我正在尝试使用 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 控制台中显示错误请求。 非常感谢您的帮助。
您正在使用 serviceUrl: 'stuff'+$("#interfaceDefNodeIOS").val()
初始化自动完成对象。在初始时间,$("#interfaceDefNodeIOS") 是空的,对吧?所以你用一个空参数初始化自动完成。当您在输入字段中键入内容时,此参数不会自动更新。自动完成已经初始化。
来自 the doc,使用:
params: Additional parameters to pass with the request, optional.