javascript - jQuery:使用多个下拉菜单时获取 (1) 选择的值

标签 javascript jquery

enter image description here

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

$(document).on('change',$('#dropdownId'),function(){
        let itemVal = $('#dropdownId').find(':selected').val();
        var itemId = $('#dropdownId').find(':selected').attr('id');
        alert(itemVal);
        $.ajax({
            //..
            success: function(html){
                }
        });
    });

最佳答案

Therefore they have the same Id (#dropdownId), which might be a problem - YES This is a problem.

ID 应该始终是唯一的。您应该改用通用的 className 来进行事件委托(delegate):

使用像 myDropDown 这样的通用类,并将其应用于 MYSQL 生成的每个下拉菜单:

HTML:

<select class="myDropDown"></select>

JQuery:

$(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

关于javascript - jQuery:使用多个下拉菜单时获取 (1) 选择的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58135154/

相关文章:

javascript - 在 HTML 文件中包含另一个 HTML 文件 - 使用脚本执行

javascript 在输入框被勾选时检查复选框 - 复选框数组 []

javascript - Ruby on Rails Assets 管道无法正常工作

javascript - 计算和限制文本区域中的单词

javascript - Ajax 调用不适用于公共(public) Dog API

javascript - 如何将FlotJs集成到ReactJs中

javascript - 甚至JavaScript通话时,音频标签播放在移动设备中均无法运行

javascript - 根据外部 javascript 文件中的单选按钮单击更改输入文本

javascript - 设置状态 : can only update a mounted or mounting component react native/undefined is not an object

javascript - 使用 listChanged 参数