我有一些复选框代码:
echo "<td>"
echo "<input type = \"checkbox\" name=\"name\" value=\"$name\">";
echo "<input type = \"hidden\" name=\"user\" value=\"$user\">";
echo "</td>"
上面的代码代表一个复选框,因此每个复选框都有多个名称/值对。想象一下我有很多这样的复选框。我想找到每个选中的复选框,然后打印出该复选框的每个名称/值对。
这是迄今为止我的代码:
var formData = {};
$(':checkbox:checked').each(function(){
$(this).find("input[name]").each(function(index, node){
formData[node.name] = node.value;
alert (node.name + node.value);
});
});
但是这不起作用。有什么想法吗?
最佳答案
您需要更改每个函数,如下所示:
$("input[type='checkbox']").change(function() {
if( $(this).is(':checked') ){
$(this).find("input[name]").each(function(index, node){
console.log('a');
formData[node.name] = node.value;
alert (node.name + node.value);
});
}
});
这是因为最初您的复选框并未处于选中状态。因此,您需要跟踪已选中/未选中的事件才能使其正常工作。希望对您有所帮助。
关于javascript - HTML 表单解析选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37079673/