2017-03-12 59 views
1

我想从我的JSON数组中选中复选框,但它只返回值为“1”的复选框;我错过了什么?从JSON中选择复选框

这里是我的小提琴http://jsfiddle.net/geegirls3/acx1yLex/

<div id="checkboxes"> 
     <input type="checkbox" name="qcol2" value="1" > Sarah 
     <br /> 
     <input type="checkbox" name="qcol2" value="9" > Sundae 
     <br /> 
     <input type="checkbox" name="qcol2" value="10" > Summer 
     <br /> 
     <input type="checkbox" name="qcol2" value="11" > GeeZee 
     <br /> 
     <input type="checkbox" name="qcol2" value="12" > Husband 
     <br /> 
    </div> 

$(document).ready(function() { 
var initValues = [{my_id: "10"}, {my_id: "11"}, {my_id: "12" }]; 
var myjson = JSON.stringify(initValues); 
//alert(myjson); 

$('#checkboxes').find(':checkbox[name^="qcol2"]').each(function() { 
    $(this).prop("checked", ($.inArray($(this).val(), myjson) != -1)); 
    //alert(myjson); 
    }); 
}); 

回答

0

JSON.stringifyinitValues地图转换成一个长字符串,而不是到一个数组,你可以使用​​用。

如果您想从JSON字符串中选择复选框,您必须先解析它,使用id值准备一个数组,然后您可以使用inArray来选择复选框。

检查验证码:

var myjson = JSON.stringify(initValues); 
    var parsed = JSON.parse(myjson); 

    var myarray = []; 
    $.each(parsed,function(key, value) 
    { 
    myarray.push(value["my_id"]); 
    }); 

    $('#checkboxes').find(':checkbox[name^="qcol2"]').each(function() { 
     $(this).prop("checked", ($.inArray($(this).val(), myarray) != -1)); 
     //alert(myjson); 
    }); 
+0

它的工作谢谢。根据你的帮助,我改变了我的代码。我的小提琴https://jsfiddle.net/geegirls3/70jd4nv8/ – GeeGirls3