jQuery结果为$ .post

时间:2011-05-03 07:10:42

标签: jquery

在页面上,我有几个复选框,每个的ID都不同。复选框的数量不固定,可能是一个,4个,10个......我想得到所有的ID并通过$ .post发送它们。

我该怎么做?

谢谢,

更新1:

var jqxhr = $.post("/Controller/MyAction", {
    field1: $("#field1").val(),
    benefic: $(":checkbox").serialize(),
    fileld2: $("#fileld2").val()
},
function (data) {
})
.success(function () {
})
.error(function (jqXHR, status, error) {
})
.complete(function () {

});

我在控制器中看不到“有益”的任何价值......而且它是我需要的所选复选框的“id”

3 个答案:

答案 0 :(得分:6)

这样做:

$.post('your_url', $(":checkbox").serialize() );

如果您的复选框名称相同,例如name="myCheckbox[]",则可以执行以下操作:

$.post('your_url', $(":checkbox[name='myCheckbox[]']").serialize() );

希望这有帮助。

编辑更新1 的解决方案:

$.post("/Controller/MyAction", {
    field1: $("#field1").val(),
    benefic: $(":checkbox:checked").attr("id"),
    fileld2: $("#fileld2").val()
},
...

这将满足您的要求..但是,您确定它始终只有1个复选框。选择?如果您需要超过1个(我几乎可以肯定您这样做),您需要以哪种格式发送它们?用逗号分隔的ID?

要发送所有以逗号分隔的已检查ID,您可以执行以下操作:

$.post("/Controller/MyAction", {
    field1: $("#field1").val(),
    benefic: $(':checkbox:checked').map(function() { return this.id; }).get().join(','),
    fileld2: $("#fileld2").val()
},
...

干杯

答案 1 :(得分:1)

我相信这样的事情可以解决问题:

    var json_send = {};
    $("input:checkbox").each(function()
                             {
                                 //Push all the $(this).attr("id") into the Json

                             });
//And here you send them

答案 2 :(得分:0)

您可以使用jQuery .serialize()函数从表单中获取表单字段值,然后通过jQuery .post

发送它

例如:

$.post("test.php", $("#testform").serialize());