需要点击事件以在其他期间触发警报

时间:2014-11-20 00:40:31

标签: javascript jquery html

所以,这段代码正在运行:

<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>

但我无法获得点击,onclick或事件处理程序的任何工作版本,以便在else条件下生成弹出消息。除非用户选中复选框,否则他们无法在我的网站上发送订单。现在他们点击按钮,没有任何反应,直到他们检查框。但我也想要一个警示,例如:

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

2 个答案:

答案 0 :(得分:1)

正如Verhaeren所说,如果按钮被禁用,则无法触发click事件。我只是在点击事件中添加了if / else检查,而不是禁用按钮。

因此...

$(document).on('click', '#submit_send_order', function(event) {
    event.preventDefault();

    if ($('.end-box').prop('checked')) {
        //Handle form submission
    } else {
        alert('You cannot proceed until you check the end box');
    }
});

答案 1 :(得分:0)

禁用元素时,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");
  });
});

我建立了一个&#34;解决方案&#34;如果你真的想这样做的话。你可以在这个小提琴上查看它:

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

在按钮上方放置一个按钮大小相同的元素,以便在按钮被禁用时捕捉到点击。

相关问题