Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要单击事件以在else期间触发警报_Javascript_Jquery_Html - Fatal编程技术网

Javascript 需要单击事件以在else期间触发警报

Javascript 需要单击事件以在else期间触发警报,javascript,jquery,html,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');   

因此,该代码正在运行:

<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事件不会激发。另外,请注意,查看复选框是否选中的正确方法是:

$(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");
  });
});

如果你真的不想这么做,我会为你建立一个“解决方案”。你可以在这个小提琴上检查它:


当按钮被禁用时,它将一个与按钮大小相同的元素放置在其上以捕捉点击。

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

所以


将代码中的
attr
的所有实例替换为
prop
。您的示例是有效的,但是当我在我的站点上实现代码时,我在div上没有得到单击响应,即使选中该框,我也无法单击提交按钮。下面是按钮的实际HTML:
@JacobIRR您在那里更改了很多内容。请注意,在我的小提琴风格应用于按钮:位置:相对;顶部:-20px;z指数:1。现在您还可以将类型更改为“image”。然后,当按钮被禁用时,您必须更改捕捉单击并显示在按钮(现在是图像)上的div的样式。原理很简单:当元素被禁用时,将其放置在可单击输入上以显示警报消息,当可单击按钮被启用时,隐藏该元素。
$(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");
  });
});
$(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');
    }
});