如何确定是否选中了复选框?

时间:2011-01-21 01:55:38

标签: javascript html checkbox

出于某种原因,我的表单不想获取复选框的值...我不确定它是否是我的编码,但是当我尝试alert()值时,我得{ {1}}结果。我有什么不对?

undefined

修改

我尝试将其更改为此

<head>
  <script>
    var lfckv = document.getElementById("lifecheck").checked
    function exefunction(){
      alert(lfckv);
    }
  </script>
</head>
<body>
  <label><input id="lifecheck" type="checkbox" >Lives</label>
</body>

但现在它甚至不想function exefunction() { alert(document.getElementById("lifecheck").checked); } 。出了什么问题?

9 个答案:

答案 0 :(得分:98)

var lfckv放在函数内。执行该行时,尚未解析主体,并且元素"lifecheck"不存在。这完全没问题:

function exefunction() {
  var lfckv = document.getElementById("lifecheck").checked;
  alert(lfckv);
}
<label><input id="lifecheck" type="checkbox" >Lives</label>
<button onclick="exefunction()">Check value</button>

答案 1 :(得分:5)

您正在尝试在加载复选框之前读取复选框的值。该脚本在复选框存在之前运行。您需要在页面加载时调用脚本:

<body onload="dosomething()">

示例:

http://jsfiddle.net/jtbowden/6dx6A/

在第一次分配后,您也错过了分号。

答案 2 :(得分:4)

您可以使用此代码,它可以返回truefalse

&#13;
&#13;
$(document).ready(function(){
  
  //add selector of your checkbox

  var status=$('#IdSelector')[0].checked;
  
  console.log(status);

});
&#13;
&#13;
&#13;

答案 3 :(得分:1)

只要浏览器找到,就会运行定义lfckv的行。当您将其放入文档的头部时,浏览器会在创建lifecheck元素之前尝试查找lifecheck id。您必须在lifecheck输入下面添加脚本,以使代码正常工作。

答案 4 :(得分:1)

尝试学习jQuery这是一个开始使用javascript的好地方,它真正简化了代码并帮助将你的js与你的html分开。包含谷歌CDN的js文件(https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js)

然后在您的脚本标记中(仍在<head>中)使用:

$(function() {//code inside this function will run when the document is ready
    alert($('#lifecheck').is(':checked'));

    $('#lifecheck').change(function() {//do something when the user clicks the box
        alert(this.checked);
    });
});

答案 5 :(得分:0)

var elementCheckBox = document.getElementById("IdOfCheckBox");


elementCheckBox[0].checked //return true if checked and false if not checked

感谢

答案 6 :(得分:0)

<!doctype html>
<html lang="en">
<head>
</head>
<body>
<label><input class="lifecheck" id="lifecheck" type="checkbox" checked >Lives</label>

<script type="application/javascript" >
    lfckv = document.getElementsByClassName("lifecheck");
    if (true === lfckv[0].checked) {
      alert('the checkbox is checked');
    }
</script>
</body>
</html>

所以你可以在javascript中添加事件,让动态事件受到复选框的影响。

感谢

答案 7 :(得分:0)

如果选中此复选框,则将返回true,否则将返回false。

$(this).is(":checked")

将$(this)替换为您要检查的变量。

并用于以下条件:

if ($(this).is(":checked")) {
  // do something
}

答案 8 :(得分:-2)

<!DOCTYPE html>
<html>
<body>
    <input type="checkbox" id="isSelected"/>
    <div id="myDiv" style="display:none">Is Checked</div>
</body>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script>
        $('#isSelected').click(function() {
            $("#myDiv").toggle(this.checked);
        });
    </script>
</html>