查看是否单击复选框,直到单击它

时间:2015-12-14 17:30:24

标签: javascript html

我正在看我如何制作一个Are You Human复选框,但我遇到了问题(Code At The End)。我试图让它看到它是否被点击,直到它被点击。我试过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给你帮助!

2 个答案:

答案 0 :(得分:2)

originalEvent is JQuery, not JavaScript. A workaround is to test screenX and screenY -- if it's a human, these will have some value based on the checkbox position. Also, you can remove the onclick from your html and tie your click event like this:

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

答案 1 :(得分:1)

这有效:https://jsfiddle.net/rz4pmp5L/3/

button.rac_enabled <~ signal

问题是(至少)var input = document.getElementById('ruhuman'); var ruhuman = { checked: false }; function check() { if (input.checked) { ruhuman.checked = true; } alert(ruhuman.checked); } input.onchange = check; check(); 根本没有定义。