首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery: Get (1)使用多个下拉列表时的选定值

jQuery: Get (1)使用多个下拉列表时的选定值
EN

Stack Overflow用户
提问于 2019-09-27 21:03:33
回答 1查看 46关注 0票数 0

当分别单击时,我尝试从每个Select-Dropdown (1个选项)中获取所选值。目前,当我从第一个下拉列表中更改选定的值时,它会显示正确的值。但是,当我单击另一个下拉列表并更改值时,它会一直显示第一个下拉列表中的值。下拉列表是在MYSQL数据库的表(foreach循环)中动态创建的。因此,它们具有相同的Id (#dropdownId),这可能是一个问题。两个下拉列表都会触发警报,但只有在有效地更改第一个下拉列表时,"selected“值才是正确的。当从另一个下拉列表中选择某些内容时,它将始终显示第一个下拉列表中最后选择的值。(id相同)

代码语言:javascript
运行
复制
$(document).on('change',$('#dropdownId'),function(){
        let itemVal = $('#dropdownId').find(':selected').val();
        var itemId = $('#dropdownId').find(':selected').attr('id');
        alert(itemVal);
        $.ajax({
            //..
            success: function(html){
                }
        });
    });
EN

回答 1

Stack Overflow用户

发布于 2019-09-27 21:11:28

dropdownId因此它们具有相同的Id (#

),这可能是一个问题-是的,这是一个问题。

Id应始终是唯一的。您应该切换到使用通用className进行事件委派:

使用像myDropDown这样的公共类,并将其应用于MYSQL生成的每个下拉列表:

HTML:

代码语言:javascript
运行
复制
<select class="myDropDown"></select>

JQuery:

代码语言:javascript
运行
复制
$(document).on('change','.myDropDown',function(){
        //$(this) refers to the drop down which triggered the event
        let itemVal = $(this).find(':selected').val();
        var itemId = $(this).find(':selected').attr('id');
        alert(itemVal);
        //AJAX Part
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58135154

复制
相关文章

相似问题

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