我有一个带有复选框的网页表单。我正在尝试设置框以选中使用onclick单击网页另一部分上存在的内容。
这些似乎没有用(表格和复选框ID / NAME都设置正确):
<a href="#" onclick="document.getElementById('frmEditBasicBasic').active.checked=TRUE;"> test </a>
<a href="#" onclick="document.frmEditBasicBasic.active.checked=TRUE;"> test </a>
<a href="#" onclick="document.getElementById('active').checked=TRUE;"> test </a>
<a href="#" onclick="window.document.getElementById('frmEditBasicBasic').active.checked=TRUE;"> test </a>
<a href="#" onclick="window.document.frmEditBasicBasic.active.checked=TRUE;"> test </a>
<a href="#" onclick="window.document.getElementById('active').checked=TRUE;"> test </a>
答案 0 :(得分:2)
您应该使用<label>
元素:
<label for="active">Test</label>
点击此<label>
会自动切换ID为active
的复选框。 (如果它是文本框,它将聚焦文本框)
要回答这个问题,TRUE
应为小写。 (Javascript区分大小写)
答案 1 :(得分:2)
您应该使用<label>
来完成这项工作:
<label for="name">Name</label>
...
<input type="checkbox" id="name" name="name" />
或者
<label><input type="checkbox" id="name" name="name" /> Name</label>
修改强>
如果您确实想使用Javascript执行特殊操作,则需要将return false;
添加到onclick
事件,以防止浏览器更改页面。这是一个Javascript示例(我从不使用内联Javascript):
document.getElementById('somelink').onclick = function(){
document.getElementById('somecheckbox').checked = false; // Unchecks the checkbox
return false; // Prevents the browser from changing page
};
答案 2 :(得分:0)
这很好用:(http://jsfiddle.net/NQ5Rm/4/)
<input type="checkbox" id="active" >
<a href="#" onclick="document.getElementById('active').checked=true;"> test </a>
答案 3 :(得分:0)
JavaScript区分大小写,其布尔文字是小写的。请尝试使用obj.checked = true。此外,在某些浏览器(例如Chrome)中,getElementById()的含义不超过它所说的内容:它按ID而不是按名称获取元素。设置id属性以及name属性。
以下在IE和Chrome中对我来说很好用:
<body>
<a href="#" onclick="document.getElementById('active').checked=true;"> test </a>
<form>
<input type="checkbox" name="active" id="active" value="Car" />
</form>
</body>
如果您修复大小写并且(如果您没有使用IE)设置id =“foo”以及name =“foo”(如果你是的话),你的部分或全部其他版本可能同样有效。使用IE,请记住,我们大多数人不是)。
最后,&lt; label&gt;其他评论者建议的事情值得了解,并且可能比JavaScript更好地解决您的问题。