[英]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卻沒有結果
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' />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.