基本的javascript问题

时间:2010-09-21 20:07:41

标签: javascript

我有一个带有复选框的网页表单。我正在尝试设置框以选中使用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>

4 个答案:

答案 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更好地解决您的问题。