繁体   English   中英

是否从JSON数据中选中设置复选框

[英]Set checkbox is checked or not from json data

我有复选框,我想使用jQuery更改它的值,具体取决于json数据的值,我在数据库中恢复了字符串,该字符串确定了每个html元素的值,像这样

bandwidthcap:=false,download:=,upload:=,restrict:=true

带宽上限为切换复选框,但是程序每次都将其设置为选中状态,即使您看到的值为false也不例外。 这是获取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]包含array2[1]复选框$('#bandwidthcap').attr('checked',false)但它给出了检查结果,我搜索了alote却没有结果

truefalse被视为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' /> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM