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.stringify
将 initValues
映射转换为长字符串,而不是转换为可以与 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);
});
我试图从我的 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.stringify
将 initValues
映射转换为长字符串,而不是转换为可以与 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);
});