自动完成和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(); }
文件似乎暗示这是一种可能性