自动完成和jquery选择器在运行时更改

自动完成和jquery选择器在运行时更改,jquery,autocomplete,selector,Jquery,Autocomplete,Selector,请看下面的自动完成代码 $(document).ready(function(){ $("#the_input").autocomplete("/autocomplete.php", { //some options extraParams: { base: $('.selected_button').prev('input').val() //***

请看下面的自动完成代码

   $(document).ready(function(){
        $("#the_input").autocomplete("/autocomplete.php", {
                //some options
            extraParams: {
                base: $('.selected_button').prev('input').val() //***                                                
                    },
            formatItem: function(data, i, n, value) {
                return value;
            }
        });
   });
“base”参数是我的问题(标有注释的部分)

我在页面上有三个按钮和三个隐藏的输入字段。 最初,在加载页面时,我将“selected_button”添加到其中一个按钮。 我已经确认,可以使用“base:”之后的jquery代码访问此元素。 当用户单击其他按钮时,我从所有按钮中删除“selected_button”类,并将其添加到用户单击的按钮中

我想用它来更改用于自动完成查找的基本文件夹

问题是,无论单击哪个按钮,“自动完成”始终使用最初设置的路径。
因此,我认为autocomplete无法识别我在运行时所做的类更改。

您需要在删除所选按钮时更改选项:

$("#the_input").autocomplete("option", "extraParams", new_selected_value)
摘自jqueryui文档:

选择权

.autocomplete( "option" , optionName , [value] )

获取或设置任何自动完成选项。如果未指定值,则将充当getter。

是否尝试将基参数包装到函数中:

 base: function () { return $('.selected_button').prev('input').val(); }
文件似乎暗示这是一种可能性