Select 个来自 JSON 的复选框

Select checkboxes from JSON

我试图从我的 JSON 数组中获取选中的复选框,但它只有 returns 值为 ="1" 的复选框;我错过了什么?

这是我的fiddlehttp://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);
    });
 });

JSON.stringifyinitValues 映射转换为长字符串,而不是转换为可以与 inArray() 一起使用的数组。

如果你想select来自JSON字符串的复选框,你必须先解析它,准备一个包含id值的数组,然后你可以使用inArray来select 复选框。

检查此代码:

   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);
   });