更改/获取CheckBox的检查状态

我只想用JavaScript来获取/更改CheckBox的值。 不,我不能使用jQuery。 我试过这样的东西,但它不会工作。

JavaScript函数

function checkAddress() { if (checkAddress.checked == true) { alert("a"); } } 

HTML

 <input type="checkbox" name="checkAddress" onchange="checkAddress()" /> 

使用onclick将会起作用。 从理论上讲,它可能无法捕捉到通过键盘进行的更改,但是,通过键盘检查时,无论如何,所有浏览器似乎都会触发事件。

您还需要将checkbox传递给函数:

 function checkAddress(checkbox) { if (checkbox.checked) { alert("a"); } } 

HTML

 <input type="checkbox" name="checkAddress" onclick="checkAddress(this)" /> 

在使用之前,您需要检索checkbox。

给checkbox一个id属性以document.getElementById(..)检索它,然后检查它的当前状态。

例如:

 function checkAddress() { var chkBox = document.getElementById('checkAddress'); if (chkBox.checked) { // .. } } 

然后你的HTML会看起来像这样:

 <input type="checkbox" id="checkAddress" name="checkAddress" onclick="checkAddress()"/> 

(也改变onclick 。 在IE中不能很好地工作 :)。

我知道这是一个非常晚的答复,但是这个代码更加灵活,应该帮助像我这样的后来者。

 function copycheck(from,to) { //retrives variables "from" (original checkbox/element) and "to" (target checkbox) you declare when you call the function on the HTML. if(document.getElementById(from).checked==true) //checks status of "from" element. change to whatever validation you prefer. { document.getElementById(to).checked=true; //if validation returns true, checks target checkbox } else { document.getElementById(to).checked=false; //if validation returns true, unchecks target checkbox } } 

HTML是类似的

 <input type="radio" name="bob" onclick="copycheck('from','to');" /> 

其中“from”和“to”分别是您希望复制到的元素“from”的相应id。 因为它可以在checkbox之间工作,但是只要从html事件调用发送variables时正确地定义了“to”(被操纵的checkbox),就可以input任何你想要的ID。

注意,正如SpYk3HH所说,你要使用的目标是默认的一个数组。 使用Web开发人员工具栏中的“显示元素信息”工具将帮助您find相应checkbox的完整标识。

希望这可以帮助。

需要是:

 if (document.forms[0].elements["checkAddress"].checked == true) 

假设你有一个表单,否则使用表单名称。

作为一个侧面说明,不要以相同的名称调用元素和函数,否则会引起奇怪的冲突。

我知道这是迟到的信息,但在jQuery中,使用.checked是可能和容易的! 如果你的元素是这样的:

 <td> <input type="radio" name="bob" /> </td> 

您可以轻松地获取/设置选中状态,如下所示:

 $("td").each(function() { $(this).click(function() { var thisInput = $(this).find("input[type=radio]"); var checked = thisInput.is(":checked"); thisInput[0].checked = (checked) ? false : true; } }); 

秘密是使用“[0]”数组索引标识符,这是你的jQuery对象的ELEMENT! 请享用!

你需要这个:

 window.onload = function(){ var elCheckBox=document.getElementById("cbxTodos"); elCheckBox.onchange =function (){ alert("como ves"); } }; 
 <input type="checkbox" name="checkAddress" onclick="if(this.checked){ alert('a'); }" /> 

这是我如何使用这种事情的一个例子:

HTML:

 <input type="checkbox" id="ThisIsTheId" value="X" onchange="ThisIsTheFunction(this.id,this.checked)"> 

JAVASCRIPT:

 function ThisIsTheFunction(temp,temp2) { if(temp2 == true) { document.getElementById(temp).style.visibility = "visible"; } else { document.getElementById(temp).style.visibility = "hidden"; } }