在页面上,我有几个复选框,每个的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”
答案 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());