如何确定是不是选中了复选框?
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】:您正试图在加载之前读取复选框的值。该脚本在复选框存在之前运行。您需要在页面加载时调用您的脚本:
<body onload="dosomething()">
例子:
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)
然后在你的脚本标签中(仍然在<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);
);
);
【讨论】:
-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】:你可以使用这个代码,它可以返回true
或false
:
$(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,因此不回答问题以上是关于如何确定是不是选中了复选框?的主要内容,如果未能解决你的问题,请参考以下文章