0

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

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

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

4

6 回答 6

3

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

<a href="buy.php" onclick="return confirmbuy();">Buy</a>
于 2012-11-14T13:17:10.450 回答
3

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

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

onclick="return confirmbuy();">

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

ref_to_link.addEventListener('click', confirmbuy);

我建议阅读更多关于addEventListenerUnobtrusive Javascript的内容。

于 2012-11-14T13:17:21.620 回答
2

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

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

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

于 2012-11-14T13:19:46.113 回答
1

你需要:

onclick="return confirmbuy();"
于 2012-11-14T13:18:19.130 回答
1

更好的..

<a href="buy.php" onclick="return confirm('Are You Sure???');">Buy</a>
于 2012-11-14T13:18:42.590 回答
1

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

<a href="buy.php" onclick="return confirm('Are You Sure???');">Buy</a>
于 2012-11-14T13:19:04.187 回答