我正在尝试获取复选框名称和值的对象。假设我有这个表格:
<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/