javascript - 返回复选框值的对象

标签 javascript jquery forms

我正在尝试获取复选框名称和值的对象。假设我有这个表格:

<form>
<input type="checkbox" name="email" />
<input type="checkbox" name="name" />
<input type="checkbox" name="hi" />

假设检查了第一个和第三个,我想要这个对象:

{ email: 1, name: 0, hi: 1 }

这是我尝试过的:

$(':checkbox').map(function() { return this.name + '=' + (this.checked ? 1 : 0) } }).get();

这给了我:

['email=1', 'name=0', 'hi=1']

但我不知道从这里做什么。

我的做法是错的吗?

最佳答案

根据the .map() method doco , .map() 返回“一个 jQuery 包装的数组”。如果你想要一个对象,你可以这样做:

var checkboxes = {};
$(':checkbox').each(function() {
    checkboxes[this.name] = this.checked ? 1 : 0;
});

请注意,如果您有具有相同名称的复选框(就 html 表单而言是有效的),那么您的对象将仅保留每个名称的最后一个复选框的值。

关于javascript - 返回复选框值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002223/

相关文章:

javascript - $(...).pushpin 不是函数 - reactJs、Materializecss

forms - 扩展 EntityType,仅将选择设置为选定的实体

php - 使用 PHP 和 MySQL 填充 Quiz Web 应用程序表单

php - 将 PHP 变量动态传递给 AJAX JavaScript 函数

javascript - 使用 ExtJS 创建动态网格

javascript - 无法初始化 fastclick 插件

javascript - 为什么我不能改变元素的类别?

Jquery 到 Python/Django 查询字典

javascript - JavaScript 中 try/catch block 的正确使用

javascript - React Native图像上传文件扩展名错误