如何获取页面上选中的所有复选框的数组,然后将其传递到下一页(在本例中为php,因此可以通过php _POST函数获取)。我想出了这个:
<script type="text/javascript">
var selected = new Array();
$(document).ready(function() {
$("input:checkbox:checked").each(function() {
selected.push($(this).val());
});
$('#od').submit(function() {
alert(this.selected); // *See note below
$.post('receiver.php', {'registration': selected});
return false;
});
});
</script>
但是似乎不起作用:(它返回null,好像没有复选框被添加到数组中,或者post函数可能是错误的。你能指出我在正确的方向吗?
答案 0 :(得分:2)
我发现了以下问题:
您在页面加载时读取了选中的项目,因此忽略了用户所做的所有更改。将该代码移至submit()
处理程序。
您的调试代码(alert(this.selected)
)尝试显示表单节点的selected
属性的值。它不是对您的JavaScript全局变量selected
的引用。我建议你使用适当的调试工具,如Firebug;警报非常不合适。
您已成功发送已检查项目的值。您只需忽略字段 name 并将所有内容重命名为registration
。这看起来有意,否则报告回来:
{'registration': selected}
我想您可以让jQuery为您序列化值,但是在代码中修复这些小细节应该可以解决问题。
答案 1 :(得分:0)
我认为$("input:checkbox:checked")
应该是`$(“input [type =”checkbox“]:checked”)
答案 2 :(得分:0)
或简单地说:$('input:checked','#form-container');
答案 3 :(得分:0)
$('#od').submit(function() {
var selected = $('input[type="checkbox"]:checked').toArray();
$.post('receiver.php', {'registration': selected});
return false;
});
发布的数据可能需要拆分.....