【问题标题】:Need click event to trigger alert during else需要点击事件在其他期间触发警报
【发布时间】:2014-11-20 00:40:30
【问题描述】:

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

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

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

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

【问题讨论】:

  • 在您的代码中将所有attr 实例替换为prop

标签: javascript jquery html


【解决方案1】:

正如上面 Verhaeren 所说,如果按钮被禁用,那么它就不能触发 click 事件。我不会禁用按钮,而是在 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');
    }
});

【讨论】:

    【解决方案2】:

    当元素被禁用时,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/

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

    【讨论】:

    • 您的示例有效,但是当我在我的网站上实现代码时,我没有在 div 上获得点击响应,即使选中该框我也无法点击提交按钮。这是按钮的实际 HTML:&lt;input id="submit_send_order" style="vertical-align:middle;margin-bottom:4px;border:0px;margin-bottom:expression('7px');" type="image" src="img/review_continue.gif" value=" Send Order &gt;&gt;" alt=" Send Order &gt;&gt;" onclick="temp_disabled(this, 60)" disabled="disabled"&gt;
    • @JacobIRR 你在那里改变了很多东西。请注意在我的小提琴中应用于按钮的样式:位置:相对;顶部:-20px;z-index:1。现在您还将类型更改为“图像”。然后,当按钮被禁用时,您必须更改捕获点击并显示在按钮(现为图像)上的 div 的样式。原理很简单:当禁用可点击输入时将元素定位在可点击输入上以显示警告消息,并在启用可点击按钮时隐藏该元素。
    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多