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

Posted

技术标签:

【中文标题】如何确定是不是选中了复选框?【英文标题】:How do I determine if a checkbox is checked?如何确定是否选中了复选框? 【发布时间】:2011-06-12 21:16:13 【问题描述】:

由于某种原因,我的表单不想获取复选框的值...我不确定这是否是我的编码,但是当我尝试alert() 的值时,我得到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);

但现在它甚至不想execute。怎么了?

【问题讨论】:

【参考方案1】:

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

&lt;body onload="dosomething()"&gt;

例子:

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

您在第一次分配后还缺少一个分号。

【讨论】:

javascript 不需要分号。【参考方案2】:

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>

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

然后在你的脚本标签中(仍然在&lt;head&gt;)使用:

$(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);
    );
);

【讨论】:

-1 我认为 jQuery 绝对不是开始学习 JS 的好地方。【参考方案5】:
<!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>

【讨论】:

OP没有提到jquery?【参考方案6】:

你可以使用这个代码,它可以返回truefalse

$(document).ready(function()
  
  //add selector of your checkbox

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

);

【讨论】:

我没有看到 jQuery 标记,是吗? 没有 jQuery ,你可以试试我在底部的其他评论 如果没有 #IDSelector 元素,这段代码会破坏页面,因为 `$(#IDSelector')[0] 将是未定义的。【参考方案7】:

勾选复选框返回true,不勾选返回false。

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

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

并用于条件:

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

【讨论】:

这个答案需要jquery,因此不回答问题

以上是关于如何确定是不是选中了复选框?的主要内容,如果未能解决你的问题,请参考以下文章

如何识别复选框是不是选中了ajax? [复制]

类事件处理程序未检测是不是选中复选框

检查是不是选中了基于工作表的复选框

引导程序如何确定复选框/单选按钮的选中状态

如何检查是不是选中了复选框[重复]

如何检查单击时是不是选中了复选框?