Javascript读取复选框并保存为数组

时间:2013-02-05 18:23:50

标签: javascript arrays checkbox

我有许多格式化的复选框......

<input type="checkbox" name="mybox" value="box1">Box 1</input>
<input type="checkbox" name="mybox" value="box2">Box 2</input>
<input type="checkbox" name="mybox" value="box3">Box 3</input>
<input type="checkbox" name="mybox" value="box4">Box 4</input>
<input type="checkbox" name="mybox" value="box5">Box 5</input>

我正在尝试阅读使用javascript勾选哪些框并将它们保存为数组,我使用以下代码....

  function handleNotifyButtonClick() {
    var type = $.trim($("input[@name='mybox']:checked").each(function()
    {
    add $(this).val() to your array;
    }));

但由于某种原因,它不起作用,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

  

将$(this).val()添加到数组中;

这是英文,而不是JavaScript。

试试这个:

var type = [];
$("input[name=mybox]:checked").each(function() {type.push(this.value)});

答案 1 :(得分:0)

这不是你{3} attribute equals selector的做法,而且你有各种语法错误。但是你走在正确的轨道上。

function handleNotifyButtonClick() {
    var values = $('input[name="mybox"]:checked').map(function() {
        return this.value;
    }).get();
}

Live Example | Source - 该示例还更正了HTML并演示了如何将label标记用于我认为您尝试执行的操作。

我在那里做了什么:

  • 使用属性equals selector(name="value"
  • 使用map获取值的地图
  • 在迭代器函数中,我传递给map,我返回每个复选框的值(this是原始DOM对象,value是{{1}上完全可靠的跨浏览器元素)
  • 使用get将返回的地图(奇怪的是jQuery实例)转换为真实数组

作为旁注,您永远不会使用input</input>void element,不需要结束标记。