javascript onchange复选框仍然选择取消

时间:2014-04-01 22:25:18

标签: javascript checkbox onchange confirm

<script>
function no_email_confirm() { 
  if (document.getElementsByName("no_email")[0].checked == false) {
    return true;
  } else {
   var box= confirm("Sure?");
    if (box==true)
        return true;
    else
       document.getElementsByName("no_email")[0].checked == false;
  }
}

</script>

这是我的HTML复选框:

 <input type="checkbox" id="no_email"  name="no_email" onchange="no_email_confirm()"></input>

出于某种原因,这会在我第一次选中该框时弹出确认,但之后没有任何点击。此外,即使我单击“取消”,它仍然会选中复选框。我在这里搜索过,出于某种原因,无论我尝试什么,我都无法让它正常工作。

它应该确认他们是否真的要检查框,如果他们选择“是”然后检查它,如果没有,那么它不会检查它。我可以让它在没有名称no_email的情况下工作,但我无法改变它......

有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

看起来你有几个错误,最明显的是当你可能意味着==时使用=。相反,添加一个事件监听器并确保分配工作:

var box = document.querySelector('#no_email');

box.addEventListener('change', function no_email_confirm() { 
  if (this.checked == false) {
    return true;
  } else {
   var confirmation= confirm("This means that the VENDOR will NOT RECEIVE ANY communication!!!!");
    if (confirmation)
        return true;
    else
       box.checked = false;
  }
});

http://jsfiddle.net/A3VGg/1/