JavaScript onchange复选框仍选中“取消”

javascript onchange checkboxes still select on cancel

本文关键字:取消 onchange 复选框 JavaScript      更新时间:2023-09-26
<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的情况下工作,但我无法改变它。

有人有什么想法吗?

看起来你有几个错误,最明显的是当你的意思是=时使用了==。 相反,请添加事件侦听器并确保分配有效:

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/