因此,此代码有效:

<script>
$(document).ready(function(){
  var btn = $('#submit_send_order');
  btn.attr({disabled: 'disabled'});
  var chk = $('.end-box');
  chk.click(function(){
    if ($(this).attr('checked'))
      btn.removeAttr('disabled');
    else
      btn.attr({disabled:'disabled'});
  });
});
</script>


但是我无法获得任何有效的click,onclick或事件处理程序版本,以免在else条件期间导致弹出消息。除非用户选中一个框,否则他们将无法在我的网站上发送订单。现在,他们单击该按钮,直到选中该复选框,然后什么都没有发生。但我也想显示一个警报,例如:

$(document).ready(function(){
  $('#submit_send_order').click(function(){
    alert("You cannot proceed until you check the end box");
  });
});

最佳答案

禁用元素后,不会触发onclick事件。另外,请注意哪种方法是正确的方法以查看该复选框是否已选中:

$(document).ready(function(){
  var btn = $('#submit_send_order');
  btn.attr({disabled: 'disabled'});
  var chk = $('.end-box');
  chk.on('click', function(){
      if ($(this).is(':checked'))
      btn.removeAttr('disabled');
    else
      btn.attr({disabled:'disabled'});
  });
    btn.on('click', function(){
    alert("You cannot proceed until you check the end box");
  });
});




如果您真的想这样做,我将为此提供一个“解决方案”。您可以在这个小提琴中检查它:

http://jsfiddle.net/2f1wsb8c/3/

它在按钮上放置了与按钮大小相同的元素,以在按钮被禁用时捕获点击。

07-28 11:17