更改/获取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"; } }