从json数据中选中是否设置了复选框

时间:2017-12-07 07:06:03

标签: javascript jquery html json checkbox

我有复选框,我想使用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) 但它给予了检查 我在没有结果的情况下搜索了

1 个答案:

答案 0 :(得分:0)

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' />
&#13;
&#13;
&#13;