Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Javascript函数的HTML复选框_Javascript_Html - Fatal编程技术网

带有Javascript函数的HTML复选框

带有Javascript函数的HTML复选框,javascript,html,Javascript,Html,我只是想通过在Javascript中运行一个函数,让这个复选框在选中消息和取消选中消息之后发出警报。我可以让它显示“已检查”消息,但无法显示“未检查”警报 <input type="checkbox" id="chbx" onchange="foo()"> <script type="text/javascript"> var checkbox = document.getElementById("chbx"); function foo(){ if(check

我只是想通过在Javascript中运行一个函数,让这个复选框在选中消息和取消选中消息之后发出警报。我可以让它显示“已检查”消息,但无法显示“未检查”警报

<input type="checkbox" id="chbx" onchange="foo()">
<script type="text/javascript">
var checkbox = document.getElementById("chbx");

 function foo(){
   if(checkbox.checked=true){
       alert("Checked!");
         }
   else {
        alert("UnChecked!");
         }
    };
</script>

var checkbox=document.getElementById(“chbx”);
函数foo(){
如果(checkbox.checked=true){
警报(“已检查!”);
}
否则{
警报(“未选中!”);
}
};

您没有使用
=
比较值。需要至少是
==
,更好
==

if(checkbox.checked === true) {}
或者,简化

if(checkbox.checked) {}

在if语句中,您得到了单等号而不是双等号:

if (checkbox.checked=true) {
应该是

if (checkbox.checked == true) {
或者只是

if (checkbox.checked) {

您犯了一个经常犯的错误,即使用单个
=
此实际设置了
复选框。选中
为true。如果要进行比较,请确保使用双精度
==

此外,复选框只有两个选项;因此,如果不打开,则关闭:

这就是我应该做的:

<input type="checkbox" id="chbx" onchange="checkbox_changed()">
<script type="text/javascript">
    var checkbox = document.getElementById("chbx");

    function checkbox_changed() {
        if (checkbox.checked == true) {
            alert("Checked!");
        } else {
            alert("UnChecked!");
        }
    }
</script>

var checkbox=document.getElementById(“chbx”);
函数复选框_已更改(){
如果(checkbox.checked==true){
警报(“已检查!”);
}否则{
警报(“未选中!”);
}
}

您需要使用
=
===
,因为您所做的是设置值(每次都为true)。第二种形式最好。(没关系,我看到你删掉了不正确的语法。)谢谢你,效果很好。@DanBarzilay:对不起?为什么不呢,
===
只是比较类型和值,所以它更精确。即使它在这里没有什么区别,我只是提到了它的“更好”。
==
表示类型,布尔值表示布尔值,不管它是真是假。。应该是
==
@DanBarzilay:我不同意你的看法。仅为方便起见,此语言中应始终使用
==
,以避免与types@DanBarzilay-可以。例如,Crockford说总是使用
=
。因此,在这种情况下,这不是“错误”或“不好”,只是碰巧两者都是等效的,并且在这种情况下工作。@JaredFarrish对不起,我的错误。你犯的错误与OP在该条件下犯的错误相同(单个
=
)。