首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找到active Select2元素的id

如何找到active Select2元素的id
EN

Stack Overflow用户
提问于 2016-06-22 20:59:57
回答 1查看 2.5K关注 0票数 1

我有一个带有多个select菜单的表单(版本4),其中每个select元素的id值是动态设置的。我想找到用户单击的select元素的id。

我能让这个工作起来

代码语言:javascript
运行
复制
$('.js-example-tokenizer-ajax-data').on('select2:open', function (evt) {
        myValue = $(this).attr('id');
 });

但是我需要在ajax调用中使用myValue作为data的参数,因此需要一个获取active select2元素id的选项。我见过一些建议使用var selectedEle = $(document.activeElement)的帖子,但我不知道如何从那里获取id。

更新

我似乎可以将它包含为数据参数的值。

代码语言:javascript
运行
复制
data: getSelectedElement(function() {
            return JSON.stringify({variable: myValue})
        }),

具有如下功能

代码语言:javascript
运行
复制
function getSelectedElement(callback) {
        $('.js-example-tokenizer-ajax-data').on('select2:opening', function (evt) {
            myValue = $(this).attr('id');
            callback();
        });
    }

但是仍然存在一些计时问题,因为ajax似乎是在单击select元素之前触发的,因为当我加载页面时,我会得到一个错误的'NoneType' object has no attribute '__getitem__',因为当页面加载时,myValue没有值。

是否还有其他选项可以获取所选select2元素的id?或者,是否有办法解决时间问题?

EN

回答 1

Stack Overflow用户

发布于 2016-06-22 21:02:36

如果var selectedEle = $(document.activeElement)确实得到了您想要的元素,那么只需执行document.activeElement.id即可。

根据海报的更新更新:

在另一个堆栈溢出响应中,有人说this.context会给出正确的元素,在这种情况下,this.context.id会给出id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37978152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档