从动态创建的单选按钮中获取值并存储在数组中

Get value from dynamically created radio button and store in array

我使用 for 循环创建了单选按钮。 10组单选按钮,每组有4个单选按钮。单击提交时,我会在一个数组中获取所有选中的无线电值和存储值。但是,如果没有选中任何一组中的单选按钮,我想,对于那组单选按钮,一个空值将存储在数组中。例如,如果第 1 组中没有选中任何单选按钮,则数组的第 0 个元素应为 null。并且检查的第 2 组无线电值应存储在数组的第 1 个位置。但是我在数组的第 0 个位置得到第 2 个无线电值。 我的代码

<div id='q_body'></div>
<button type='button' id='submit1'>submit</button>

var x=0; var num_of_opt=4;
var opt=new Array('a','b','c','d');
for(var i=0;i<10;i++){
    var nw="<div class='q'>("+(i+1)+")";
    for(var j=x;j<(x+num_of_opt);j++){  /* create radio */
        nw+="<br/><input type='radio' class='radioClass' name='options"+(i+1)+"' value='"+opt[j]+"'/>"+opt[j]+"<br/>";
    }
    x=j;
    nw+="</div>";
    $("#q_body").append(nw);
}

我已尝试使用这些代码将无线电值放入数组中:

var i=0,str=''; var arr=new Array();
$("#submit1").click(function(){
    $('.radioClass:checked').each(function(j){
        arr[i++]=$(this).val();
        str+=ans[i-1];
    });
    console.log(str);
});

如何将 未选中的无线电值设为 null

试试这个:

var i=0,str=''; var arr=new Array();
$("#submit1").click(function(){
    alert($('.radioClass:not(":checked")').map(function(){
        return $(this).val();}).get());
});

演示:

http://jsfiddle.net/w12rb4g6/