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

时间:2012-07-06 15:14:53

标签: javascript jquery string jquery-selectors

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

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] + "&";
        }
    }

string是一个变量,如果按钮检查应返回true,则将适当的签名(?)附加到自身上。 myList是包含名称的数组。

不幸的是,我是所有这一切的新手,并不知道从哪里开始。我确实尝试谷歌答案(这里真的是新手),但我甚至不确定要搜索什么。我也搞乱了输入表达式的使用,使用了不同的转义字符等,但无济于事。 HTML和大多数javascript都不是我的(这是我的主管),所以我很遗憾。您可以给予任何建议,我们将非常感谢。 谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

这样的事情?

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

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