自动完成和 jquery 选择器在运行时发生变化

发布于 2024-11-08 20:43:19 字数 751 浏览 0 评论 0原文

请看一下下面的自动完成代码。

   $(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”类,并将其添加到用户单击的按钮中。

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

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

Please take a look at the following autocomplete code.

   $(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;
            }
        });
   });

The "base" parameter is my problem (the part marked with the comment).

I have three buttons and three hidden input fields on the page.
Initially, when the page is loaded, I add the "selected_button" to one of the buttons.
I have confirmed that the jquery code after "base:" can be used to access this element.
When the user clicks on one of the other buttons, I remove the "selected_button" class from all the buttons and add it to the button that the user clicked.

I want to use this to change the base folder that is being used for the autocompletion lookup.

The problem is that the autocomplete always uses the path that was initially set, no matter what button I click.
So I think the autocomplete does not recognize the class changes that I make during runtime.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

送君千里 2024-11-15 20:43:19

您是否尝试过将基本参数包装在函数内:

 base: function () { return $('.selected_button').prev('input').val(); }

文档似乎建议这是一种可能性。

Have you tried wrapping the base parameter inside a function:

 base: function () { return $('.selected_button').prev('input').val(); }

The docs seem to suggest this as a possibility.

蒲公英的约定 2024-11-15 20:43:19

删除 selected_button 时需要更改选项:

$("#the_input").autocomplete("option", "extraParams", new_selected_value)

取自 jqueryui 文档:

option

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

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

You need to change the option when you remove selected_button:

$("#the_input").autocomplete("option", "extraParams", new_selected_value)

taken from jqueryui documentation:

option

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

Get or set any autocomplete option. If no value is specified, will act as a getter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文