javascript将变量值​​分配给html页面中的复选框状态

时间:2016-06-23 16:33:09

标签: javascript html variables checkbox

我对javascript很新,这似乎是一个非常简单的问题但是尽管有很多类似的帖子似乎都没有为我提供解决方案。

我在html页面的脚本中有以下代码:

$.get( "data.php", { getlocks: 1}, function( data ) { //Pull checkbox status from database (so it isn't lost on a page refresh)
    wl = data.split(" ");
    document.getElementById("lock369").checked = 1;
    document.getElementById("lock399").checked = 0;
    document.getElementById("lock935").checked = wl[2];
    document.getElementById("test1").value = wl[0];
    document.getElementById("test2").value = wl[1];
    document.getElementById("test3").value = wl[2];
});

"lock369""lock935"设置为常量只是为了我的理智,以确保页面正确加载。问题是无论我如何设置"lock935",即使wl[2]为零,它也会被检查出来。 (我有"test1" - "test3"文本框,显示wl的3个元素,因此我确信他们通过{{1}从数据库中获取正确的值})。

最初我将所有三个复选框设置为data.php各自的元素,并且所有这些复选框都出现同样的问题,所以只有wl才有趣。我还尝试将"lock935"的值分配给单个变量,并将wl设置为等于这些变量,但这并没有解决问题。我也尝试将document.getElementById("lockXXX").checked放在paranthesis,引号,单引号等中,没有任何区别。

正如我所提到的,我对js很新,所以如果这是我的一个简单的疏忽,那就对我大喊大叫,我将在未来纠正我的方式:)

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

document.getElementById("lock935").checked = wl[2]=="1"?true:false;

答案 1 :(得分:0)

使用0和1作为布尔值没有任何问题,只要确保它是以字符串形式来自您的数据库,您在其上调用 parseInt 或将其转换为编号的。

示例:

document.getElementById("lock935").checked = parseInt(wl[2], 10);

OR

document.getElementById("lock935").checked = Number(wl[2]);
如果是空字符串,

parseInt 将返回NaN,并使用Number()将返回0NaN0都会导致未经检查的框,因此它真的取决于您。

编辑:解释了一些解释中的错误和代码中的拼写错误。