簡體   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