小编典典

单击链接时如何显示确认对话框?

all

我希望这个链接有一个 JavaScript 对话框,询问用户“ _你确定吗?” 是/_否”。

<a href="delete.php?id=22">Link</a>

如果用户点击“渊es”,链接应该加载,如果“淣o”什么都不会发生。

我知道如何在表单中做到这一点,使用onclick运行返回true或的函数false。但是我如何通过链接做到这一点<a>


阅读 68

收藏
2022-04-15

共1个答案

小编典典

内联事件处理程序

以最简单的方式,您可以confirm()在内联onclick处理程序中使用该函数。

<a href="delete.php?id=22" onclick="return confirm('Are you sure?')">Link</a>

高级事件处理

但是通常您希望将HTML 和 Javascript
分开
,所以我建议您不要使用内联事件处理程序,而是在您的链接上放置一个类并为其添加一个事件侦听器。

<a href="delete.php?id=22" class="confirmation">Link</a>
...
<script type="text/javascript">
    var elems = document.getElementsByClassName('confirmation');
    var confirmIt = function (e) {
        if (!confirm('Are you sure?')) e.preventDefault();
    };
    for (var i = 0, l = elems.length; i < l; i++) {
        elems[i].addEventListener('click', confirmIt, false);
    }
</script>

此示例仅适用于现代浏览器(对于较旧的
IE,您可以使用attachEvent()returnValue并提供实现getElementsByClassName()或使用有助于解决跨浏览器问题的库(如
jQuery))。您可以在 MDN
上阅读有关此高级事件处理方法的更多信息。

jQuery

我不想被认为是 jQuery 粉丝,但 DOM
操作和事件处理是它在浏览器差异方面最有帮助的两个领域。只是为了好玩,下面是jQuery的样子:

<a href="delete.php?id=22" class="confirmation">Link</a>
...
<!-- Include jQuery - see http://jquery.com -->
<script type="text/javascript">
    $('.confirmation').on('click', function () {
        return confirm('Are you sure?');
    });
</script>
2022-04-15