我在网上搜索和堆栈,但我找不到解决问题的方法 所以我希望有人可以帮助我 我有一个同名“shopitem []”的多重复选框,我想检查复选框是否被选中,然后将它们作为数组发送,如“1,3,5,7”到带有ajax的php代码
这是我的代码:
<form id="ShopItemForm" class="ShopItemForm" method="post" name="ShopItemForm">
<input class="ShopItem" checked="checked" name="ShopeItem[]" id="1" value="1" type="checkbox">1
<input class="ShopItem" name="ShopeItem[]" id="2" value="2" type="checkbox">2
<input class="ShopItem" checked="checked" name="ShopeItem[]" id="3" value="3" type="checkbox">3
<input class="ShopItem" name="ShopeItem[]" id="4" value="4" type="checkbox">4
<input class="ShopItem" name="ShopeItem[]" id="5" value="5" type="checkbox">5
<input name="submitShopItem" value="submit" class="button button-push" id="submitShopItem" type="submit">
</form>
$(function() {
$("#submitShopItem").click(function(e) {
e.preventDefault();
// put all checked box to array checkedArray
var shopItem =
$("#shop-item-Loader").html('');
$("#shop-item-Loader").html('load');
$.ajax({
type: "POST",
url: "checked.php",
data: "act=shopItem&ShopItem="+checkedArray,
cache: false,
success: function(html){
alert(checkedArray);
$("#shop-item-Loader").html('');
$("#shop-item-Loader").append(html);
}
});
});
});
我想将所有新检查的值发送到ajax页面,如昏迷分隔字符串
答案 0 :(得分:1)
请参阅:http://jsfiddle.net/Q2Kdt/
$(function () {
$("#submitShopItem").click(function (e) {
e.preventDefault();
var result = "";
$('input[type=checkbox]').each(function (e) {
if ($(this).is(':checked')) result = result + $(this).val() + ", ";
});
alert(result);
});
});
或按名称检查:http://jsfiddle.net/Q2Kdt/2/
$(function () {
$("#submitShopItem").click(function (e) {
e.preventDefault();
var result = "";
$("input[name*='ShopeItem[]']").filter(':checked').each(function (e) {
result = result + $(this).val() + ", ";
});
alert(result);
});
});
答案 1 :(得分:1)
var checkedArray = $("#ShopItemForm").find(":checked").map(function() {
return this.value;
}).get();
console.log(checkedArray);
修改强>
正如@DavidThomas和问题的最后一句所述:
要获取逗号分隔的已检查元素字符串,您必须在.join()
上调用checkedArray
checkedArray.join();
像这里一样使用
data: "act=shopItem&ShopItem="+checkedArray,
自动完成