使用 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.