0

我正在尝试创建一个复选框,该复选框将更改单击时的表单操作。我首先将其设置为根据是否检查消息来提醒消息,但什么都没有发生。请帮我!

JavaScript:

function toggleAction(){
var check = document.getElementById('checkb').checked;
   if (checked == "1"){
    alert("is checked");
   }else{
    alert("is not checked"); }
}

HTML:

<INPUT TYPE="checkbox" id="checkb" onclick="toggleAction()">Add Another<br>
4

2 回答 2

6

您的主要问题是您命名了变量check,但随后在if语句中查找了checked. 其次,请注意这.checked是一个布尔值(truefalse),但您将其与字符串“1”进行比较。这碰巧有效,但不推荐。

尝试:

if (check) alert("is checked");
else       alert("is not checked");

getElementById在处理程序中显式使用更好的是使用对处理事件的复选框的引用:

document.getElementById('checkb').onclick = toggleAction;
function toggleAction(){
  if (this.checked) alert('yes');
  else              alert('no');
}

请注意,在上面我还如何使用 JavaScript 而不是使用onclick="..."HTML 属性以编程方式分配事件处理程序。这被认为是“最佳实践”;您不应该直接在 HTML 中编写 JavaScript。

于 2012-08-15T19:36:07.823 回答
1

该行if(checked == "1")应该是if(check).

于 2012-08-15T19:37:03.337 回答