2

有人可以帮我将这些行转换为一个 for 循环吗?

var optie1 = "";
if($('#form #optie1_check').is(':checked')) {
    optie1 = $('#form #optie1_naam').val();
}
var optie2 = "";
if($('#form #optie2_check').is(':checked')) {
    optie2 = $('#form #optie2_naam').val();
}

我似乎无法在 Google 上找到我的答案,我真的不知道如何搜索它。我想要这样的东西:

for loop (i) {
    var str = "optie" + (i+1) + "_check";
    var str2 = "optie" + (i+1) + "_naam";
    if($('#form #str').is(':checked')) {
        opties = $('#form #str2').val();
    }
}

opties 是一个数组,我将把所有的值都放进去,所以我可以稍后传递它:

$.ajax({
    type: "POST",
    url: "voegOptiesToe.php",
    data: "opties="+opties,
    ...
}
4

4 回答 4

0
var opties = new Array();
for (i=1; i<=2; i++) {
    var str = "optie" + i + "_check";
    var str2 = "optie" + i + "_naam";

    if($('#form #'+str).is(':checked')) {
        opties.push($('#form #'+str2).val());
    }
}

JSFiddle 示例

于 2012-10-04T10:21:31.507 回答
0
var optie,i=1;    
$('#form #optie'+i+'_check').is(':checked').each(function(){
optie+= $('#form #optie'+i+'_naam').val(); 
i++;
});
于 2012-10-04T10:24:09.823 回答
0

您可以简单地使用.serialize()which 将一组表单元素编码为字符串以进行提交

http://api.jquery.com/serialize/

例如,

$.ajax({
    type: "POST",
    url: "voegOptiesToe.php",
    data: $('form').serialize(),
    ...
}
于 2012-10-04T10:27:20.010 回答
0

如果您为两个复选框保留相同的名称,则默认情况下您可以在服务器端将值作为数组检索。

或者试试这个:

values = []
$("#form input[type='checkbox']")
.filter(function(i,el){
   return $(el).is(':checked');
 })
.each(function(i, el){
   arr.push($(el).val());
 })

您可以将values数组发送到 ajax 发布数据。

于 2012-10-04T11:09:34.170 回答