【问题标题】:Confirm Delete Not Work确认删除无效
【发布时间】:2012-11-14 13:16:12
【问题描述】:

我有一个购买信用的链接。我想当点击链接确认显示所以如果用户点击是链接直接。但是在我的页面中,当我单击是或否链接时,会将我定向到 href 链接。表示是或否不是不同的和链接工作。

    <script>
    <!--
    function confirmbuy() {
    if (confirm("Are You Sure???")) {
    return true;
    } else {
    return false;
    }
    }
    //-->
    </script>
<a href="buy.php" onclick="confirmbuy();">Buy</a>

我测试此代码的提交按钮并正常工作,但链接不起作用!!!

【问题讨论】:

  • 你应该摆脱&lt;!--,本世纪没有必要保护Netscape 2时代的浏览器。

标签: php javascript html


【解决方案1】:

您的事件处理函数(由内部事件属性的值定义)不返回任何内容。它只是调用confirmbuy 然后停止。

如果你想返回 confirmbuy 的返回值,那么你必须明确地这样做:

onclick="return confirmbuy();">

你不会有这个问题是confirmbuy是事件处理程序:

ref_to_link.addEventListener('click', confirmbuy);

我建议阅读更多关于 addEventListenerUnobtrusive Javascript 的信息。

【讨论】:

    【解决方案2】:

    你需要返回confirmbuy()函数的结果,否则事件永远不会被取消。

    <a href="buy.php" onclick="return confirmbuy();">Buy</a>
    

    【讨论】:

      【解决方案3】:

      内联处理程序实际上是放入一个函数中,该函数被设置为单击事件的处理程序。所以基本上你的代码相当于:

      a.addEventListener("click",function(e){
          confirmbuy();
      })
      

      如您所见,此处理程序不会返回 false,因此事件会正常进行。

      【讨论】:

        【解决方案4】:

        你需要:

        onclick="return confirmbuy();"
        

        【讨论】:

          【解决方案5】:

          更好..

          <a href="buy.php" onclick="return confirm('Are You Sure???');">Buy</a>
          

          【讨论】:

          • 我不确定我是否会称减少关注点分离“更好”。
          【解决方案6】:

          修复并删除了不必要的代码:

          <a href="buy.php" onclick="return confirm('Are You Sure???');">Buy</a>
          

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-26
          • 2011-10-06
          • 2016-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多