2011-05-03 66 views
1

在頁面上,我有幾個複選框,每個id都不相同。複選框的數量不是固定的,可能是1,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() { 

}); 

我看不出有什麼價值,我控制器「提供有益的」 ......和它的「身份證」選擇複選框,我需要

回答

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() 
}, 
... 

乾杯

+0

你能看看UPDATE1 – 2011-05-03 07:35:33

+0

我可以有幾個複選框選中,逗號分隔符是確定 – 2011-05-03 08:34:36

+0

我編輯發送由逗號分隔的解決方案。 – 2011-05-03 13:39:24

0

您可以使用jQuery .serialize()函數從表單獲取表單字段值,然後將其發送至jQuery的.post

例如:

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

你可以看看update1 – 2011-05-03 07:35:38

1

我相信這樣的事情會做的伎倆:

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

          }); 
//And here you send them