我正在查看如何制作“您是人类”复选框,但遇到问题(“代码结尾”)。我试图使其是否被单击,直到被单击。我尝试了onclick,但这不起作用。



window.onload = function() {
  var input = document.getElementById('ruhuman');

  function check() {
    if (input.checked) {
      ruhuman.checked = true;
      if (event.originalEvent === undefined) {
        ruhuman.human = false;
      } else {
        ruhuman.human = true;
      }
    }
    alert(ruhuman.human);
    alert(ruhuman.checked);
  }
  input.onchange = check;
  check();

}

<input type="checkbox" id="ruhuman" class="ruhuman" onclick="check()" required="required">
<label>R U Human?</label>





编辑:感谢您的帮助!成品位于http://ruhuman.github.io/

对于回答的人,我可以把您的github帮上您的忙!

最佳答案

originalEvent是JQuery,不是JavaScript。一种解决方法是测试screenX和screenY-如果是人类,则根据复选框的位置来确定它们的价值。此外,您可以remove the onclick from your html并按以下方式绑定您的click事件:

document.getElementById ("ruhuman").addEventListener("click", function(e){
    if (this.checked) {
      ruhuman.checked = true;
      if (e.screenX && e.screenY) {
        ruhuman.human = true;
      } else {
        ruhuman.human = false;
      }
    }
    console.log(ruhuman.human);
    console.log(ruhuman.checked);
  });


JS Fiddle Demo

09-25 19:54