我有复选框,我想使用jquery更改它的值,具体取决于json数据的值 我在数据库中恢复字符串,确定每个html元素的值 像这样
bandwidthcap:=false,download:=,upload:=,restrict:=true
bandwidthcap是切换复选框 但是程序每次都设置为检查,即使值是假的,你可以看到。 这是获取json数据并将其设置为html元素的jquery代码
var jsonData = $.ajax({
url: "Save.php?id=gettallemplate&tempname="+name,
dataType: "json",
async: false
}).responseText;
//}
//alert(jsonData);
var obj = $.parseJSON(jsonData);
var array = obj['data'].split(",");
$.each(array,function(i){ var array2 = array[i].split(":=");
$('#'+array2[0]).val(array2[1]);
$('#'+array2[0]).attr('checked', array2[1]);
});
array2[0]
包含元素ID,array2[1]
包含值
用于带宽复选框
$('#bandwidthcap').attr('checked',false)
但它给予了检查
我在没有结果的情况下搜索了
答案 0 :(得分:0)
true
和false
被视为string
,因此您无法将其视为布尔值。
您需要检查:
var flag = (array2[1] === "true");
并使用flag
将复选框设置为选中或取消选中:
var someData = 'bandwidthcap:=false,download:=,upload:=,restrict:=true';
var array = someData.split(",");
$.each(array, function(i) {
var array2 = array[i].split(":=");
var flag = (array2[1] === "true");
$('#' + array2[0]).val(array2[1]);
$('#' + array2[0]).attr('checked', flag);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='checkbox' id='bandwidthcap' />
<input type='checkbox' id='download' />
<input type='checkbox' id='upload' />
<input type='checkbox' id='restrict' />
&#13;