嗨,所以这可能听起来很奇怪,但我们现在说这样做:
var post_data = $('input[name="checks[]"]:checked').map(function() {
return this.value;
}).get();
将多个复选框的内容放入要通过AJAX发送的数组中。现在我真正想做的是以特定的方式构建post_data。
我希望复选框的值存储在与其值匹配的数组的位置。我希望这是有道理的:S
所以我要说我的复选框值是:
1,5,3,7
我想将post_data构造成:
post_data [1] = 1
post_data [5] = 5等。
忽略这个看似愚蠢的事实,任何人都可以帮助我,我现在正在努力。这就是我的尝试,但我非常苗条的知识让我变得更好:
编辑更新:(代码进度)
var post_data = $('input[name="checks[]"]:checked').serialize();
alert(post_data);
$.post('search_item.php', { 'checks[]':post_data,..
非常感谢,
答案 0 :(得分:1)
你很亲密。 value
是一个字符串。你想要一个号码。使用parseInt()
将该字符串转换为数字:
post_data[parseInt(value)] = value;
答案 1 :(得分:0)
答案 2 :(得分:0)
我想提出一个使用HTML和serialize()的解决方案。如果您使用名称中的数组编号构造每个复选框,那么您将获得您正在寻找的结果。
<input type="checkbox" name="checkbox[3]" value="3" class="retain_array_value_checkbox" />
<input type="checkbox" name="checkbox[5]" value="5" class="retain_array_value_checkbox" />
<input type="checkbox" name="checkbox[1]" value="1" class="retain_array_value_checkbox" />
现在JS:
var post_data = $('input.retain_array_value_checkbox:checked').serialize();
我无法测试这个,但它应该可行。简单干净:))