Jquery 同一页面上的多个下拉输入功能

Jquery 同一页面上的多个下拉输入功能,jquery,ajax,html-select,Jquery,Ajax,Html Select,我试图在下拉选择输入上传递带有一些参数的url,我正在调用带有onchange事件的函数 我的问题是,在同一个页面中有多个下拉列表,每个都使用一个下拉列表。当我选择一个选项时,即使选择了任何选择,也只传递第一个选择的值 e、 g 我可以在控制台中看到数据正在传递,但始终是第一个数据的值 我需要更改什么,使其成为相应的值,而不总是第一个值?提前感谢。首先,将JS移出标记。这只是一种良好的做法: $('select').change(function() { updateStatus();

我试图在下拉选择输入上传递带有一些参数的url,我正在调用带有
onchange
事件的函数

我的问题是,在同一个页面中有多个下拉列表,每个都使用一个下拉列表。当我选择一个选项时,即使选择了任何选择,也只传递第一个选择的值

e、 g

我可以在控制台中看到数据正在传递,但始终是第一个数据的值


我需要更改什么,使其成为相应的值,而不总是第一个值?提前感谢。

首先,将JS移出标记。这只是一种良好的做法:

$('select').change(function() {
    updateStatus();
});
然后,指定要传递的选择(单击的选择):


您只需在函数中传递要更改的选择: 您的html应该如下更改:

函数更新状态(changedSelect){
log($(changedSelect.val());
$.ajax({
键入:“GET”,
url:'print.php',
数据:{stat:$(changedSelect.val()},
成功:功能(数据){
警报(“完成”);
}
})
}

改变
张贴
改变
张贴

我相信您想要
$(这个)
而不是
$('select').val()
,这将从正在更改的下拉菜单中获取所选选项。

这是因为jQuery选择器$('select').val()只获取页面上匹配的第一个元素的值。如果需要任何其他select的值,则必须使slector更具体,并针对特定的select元素。可能是在select中使用id,并使用该id来定位特定的select。是的,但是问题将是相同的,因为它们都具有相同的id或类名,即使我这样做了,如果它们都具有不同的名称,我将如何定位任何select?感谢有关将JS移出标记的提示。我添加了如您所述的内容,但是我得到
TypeError:e.nodeName未定义
可能是什么问题?
function updateStatus() {
$.ajax({
    type: 'GET', 
    url: 'print.php',
    data: {stat: $('select').val()},
    success: function (data) {
        alert('done');
    }
})
}
$('select').change(function() {
    updateStatus();
});
updateStatus($(this)); // pass the jQuery element object

function updateStatus(el) { // and receive it as 'el' (or whatever)
    $.ajax({
        type: 'GET', 
        url: 'print.php',
        data: {stat: el.val()}, // use it here
        success: function (data) {
            alert('done');
        }
    });
}