使用数组来检查一系列 JavaScript 按钮

using an array to check a series of javascript buttons

本文关键字:一系列 JavaScript 按钮 检查 数组      更新时间:2023-09-26

我正在尝试检查一系列按钮,以查看它们是否已被选中以生成查询字符串。据我所知,逻辑看起来像这样:

if ($("input[name='ovr']")[0].checked)
{
...
}

这有效,但由于我不想使用一系列 if 语句来生成字符串(因为以后可能会添加更多按钮,效率低下等),我生成了一个表示与按钮关联的名称的数组(我打印了数组;它肯定包含专有名称)。但是,当我循环运行数组中的每个名称时,控制台建议"input"是一个无法识别的表达式。这是循环:

    for (i = 0; i < myList.length; i = i + 1) {
        if ($("/"input[name='" + myList[i] + "']/"")[0].checked) {
            string += myList[i] + "=" + myList[i] + "&";
        }
    }

字符串是一个变量,如果按钮检查应返回 true,它将正确的签名 (?) 附加到自身上。 myList 是包含名称的数组。

不幸的是,我是所有这些的新手,真的不知道从哪里开始。我确实尝试在谷歌上搜索答案(这里真的是一个新手),但我什至不太确定要搜索什么。我还弄乱了输入表达式的措辞,使用了不同的转义字符等,但无济于事。HTML和大多数JavaScript都不是我的(这是我的主管的),所以我加倍迷失。您能给出的任何建议将不胜感激。谢谢!

这样的东西会起作用(我真的不明白你为什么试图添加这些反斜杠,所以我只向你展示正确的方法):

for (i = 0; i < myList.length; i = i + 1) {
    if ($("input[name='" + myList[i] + "']")[0].checked) {
        string += myList[i] + "=" + myList[i] + "&";
    }
}

一个注意事项:如果要生成查询字符串,请不要忘记使用 encodeURIComponent()

这样的东西?

var query = "?";
$('input:checked').each(function(index) {
    query += this.name + "=" + this.value + "&";
});

您可以修改选择器以仅获取所需的复选框。