jquery 获取选中复选框的ID [已关闭]

mklgxw1f  于 2023-01-12  发布在  jQuery
关注(0)|答案(4)|浏览(139)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
早上好,我需要从这开始处理这个情况:

<input type='checkbox'  NAME='city'  id='11' onclick='funct()' > Rome          
 <input type='checkbox'  NAME='city'  id='47' onclick='funct()' > London          
 <input type='checkbox'  NAME='city'  id='54' onclick='funct()' > Paris

我有几个同名但不同id的复选框。我需要,每次用户点击一个复选框,触发funct()函数。这个函数应该检查每个选中的id/id,并把它们放在一起(如11,47),因为我需要通过 AJAX 发送到不同的页面。有人能帮我吗?谢谢
Ps.我放这个jsfiddle是为了让你明白:https://jsfiddle.net/hduo2v5m/

pkwftd7m

pkwftd7m1#

不要使用onclick,改为使用onchangeevent.target复选框已更改

<input type='checkbox' NAME='city' id='11' onchange='funct(event)'> Rome
<input type='checkbox' NAME='city' id='47' onchange='funct(event)'> London
<input type='checkbox' NAME='city' id='54' onchange='funct(event)'> Paris
<script>
    let funct = function (event) {
        console.log(event.target.id);
        let inputs = document.getElementsByTagName("input");
        let arrCheck = [];
        for (let i = 0;i < inputs.length;i++) {
            let input = inputs[i];
            if (input.checked) {
                arrCheck.push(input.id);
            }
        }
        console.log(arrCheck);
    }
</script>
wlp8pajw

wlp8pajw2#

如果你想得到这些被检查的输入的id,你可以使用:

var ids = $('input[name="city"]:checked').map(function() {
  return this.id
}).get()
    • 演示**

x一个一个一个一个x一个一个二个x

hk8txs48

hk8txs483#

让我们传递一个参数给你的函数:如下所示:

function funct(ele){
alert(ele.id);

}
<input type='checkbox'  NAME='city'  id='11' onclick='funct(this)' > Rome          
<input type='checkbox'  NAME='city'  id='47' onclick='funct(this)' > London          
<input type='checkbox'  NAME='city'  id='54' onclick='funct(this)' > Paris
gab6jxml

gab6jxml4#

无论如何,您应该使用value而不是id:

function funct() {
    const cbs = document.getElementsByName("city");
    const result = [];
    for(let i=0; i<cbs.length; i++) {
        if(cbs[i].checked) result.push(cbs[i].id)
    }

    console.log(result, result.join(","));
}
<input type='checkbox'  name='city'  id='11' onclick='funct()' > Rome          
<input type='checkbox'  name='city'  id='47' onclick='funct()' > London          
<input type='checkbox'  name='city'  id='54' onclick='funct()' > Paris

相关问题