0

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

<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;
    }));

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

4

2 回答 2

1

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

这是英语,不是 JavaScript。

试试这个:

var type = [];
$("input[name=mybox]:checked").each(function() {type.push(this.value)});
于 2013-02-05T18:26:56.287 回答
0

这不是您执行属性 equals selector的方式,并且您在那里有各种语法错误。但你在正确的轨道上。

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

实例| 源代码- 该示例还更正了 HTML 并演示了如何将label标签用于我认为您正在尝试做的事情。

我在那里做了什么:

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

作为旁注,您永远不会使用</input>. input是一个void 元素,它不需要结束标签。

于 2013-02-05T18:26:41.107 回答