在特定索引中填充JS数组

时间:2011-06-02 23:01:08

标签: javascript jquery ajax

嗨,所以这可能听起来很奇怪,但我们现在说这样做:

 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,..
非常感谢,

3 个答案:

答案 0 :(得分:1)

你很亲密。 value是一个字符串。你想要一个号码。使用parseInt()将该字符串转换为数字:

post_data[parseInt(value)] = value;

答案 1 :(得分:0)

您应该将post_data初始化为对象

var post_data = {};

这是一个simple example

答案 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();

我无法测试这个,但它应该可行。简单干净:))