Javascript 选中/取消选中复选框取决于来自数据库的数据

Javascript 选中/取消选中复选框取决于来自数据库的数据,javascript,jquery,html,checkbox,setattribute,Javascript,Jquery,Html,Checkbox,Setattribute,根据mysql数据库中的数据,我正在尝试选中或取消选中复选框。我使用nusoap webservice/webclient读取数据,数据值可以是1或0 我的代码是: <input name="check1" type="checkbox" id="check1" class="sag"> <script> function control() { $.ajax({ type: "POST", url

根据mysql数据库中的数据,我正在尝试选中或取消选中复选框。我使用nusoap webservice/webclient读取数据,数据值可以是1或0

我的代码是:

<input name="check1" type="checkbox" id="check1" class="sag">
<script>
    function control() {

        $.ajax({
            type: "POST",
            url: "check.php",
            data: {
                checkdata: 1
            },
            success: function(asd) {
                if (asd == '1') {
                    document.getElementById('check1').setAttribute("checked", true);


                    alert('data is 1');

                } else {
                    document.getElementById('check1').removeAttribute("checked");

                    alert('data is 0');
                }
            }
        });

    }
</script>

<body onload="control()">

函数控制(){
$.ajax({
类型:“POST”,
url:“check.php”,
数据:{
检查数据:1
},
成功:功能(asd){
如果(asd='1'){
document.getElementById('check1').setAttribute('checked',true);
警报(“数据为1”);
}否则{
document.getElementById('check1')。removeAttribute('checked');
警报(“数据为0”);
}
}
});
}

有了这段代码,我可以正确地从数据库中获取数据,alert()工作正常。但这些代码不会将checked属性添加到checkbox。如何根据加载页面时来自数据库的数据更改复选框的检查状态?

既然您已经在使用
jQuery
为什么不使用
jQuery
方法来设置所需的值

function control(){
      $.ajax({
          type: "POST",
          url: "check.php",
          data: {checkdata: 1},
          success: function(asd){
             $('#check1').prop("checked", asd == '1');
          }
      });

  }

我不确定您是否只是复制并粘贴了它,但现在它是无效的HTML,因为您的body标记应该在所有内容之前,但在这种情况下,您在它上面有一个输入。您只需执行$('check1').attr('checked',true);它不是复制的。Body标记位于Body content的顶部我认为使用值'true'比使用prop()中第二个参数的计算结果为true的表达式更清楚,这样用户以后就可以轻松地重用这段代码。如下所示:$('check1').prop('checked',true);谢谢你的回复。我对jquery不太熟悉,仍然使用老式的javascript。这解决了我的问题,但我发现主要问题是使用jquery生成的Ios样式的复选框。复选框检查正确,但样式仍会显示。如果您正在使用任何复选框插件,请在更改值后尝试触发
更改
事件。例如
$('#check1')。prop('checked',true)。trigger('change')
,可能是插件正在侦听更改事件,它将相应地更新其UI。