当分别单击时,我尝试从每个Select-Dropdown (1个选项)中获取所选值。目前,当我从第一个下拉列表中更改选定的值时,它会显示正确的值。但是,当我单击另一个下拉列表并更改值时,它会一直显示第一个下拉列表中的值。下拉列表是在MYSQL数据库的表(foreach循环)中动态创建的。因此,它们具有相同的Id (#dropdownId),这可能是一个问题。两个下拉列表都会触发警报,但只有在有效地更改第一个下拉列表时,"selected“值才是正确的。当从另一个下拉列表中选择某些内容时,它将始终显示第一个下拉列表中最后选择的值。(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){
}
});
});
发布于 2019-09-27 21:11:28
dropdownId因此它们具有相同的Id (#
),这可能是一个问题-是的,这是一个问题。
Id应始终是唯一的。您应该切换到使用通用className
进行事件委派:
使用像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
https://stackoverflow.com/questions/58135154
复制相似问题