点击<a>链接时如何显示确认对话框?
2022-08-29 23:52:38
我希望此链接有一个 JavaScript 对话框,询问用户“你确定吗?是/否”。
<a href="delete.php?id=22">Link</a>
如果用户单击“是”,则应加载链接,如果“否”,则不会发生任何事情。
我知道如何在表单中执行此操作,使用运行返回或.但是,如何使用链接执行此操作?onclick
true
false
<a>
我希望此链接有一个 JavaScript 对话框,询问用户“你确定吗?是/否”。
<a href="delete.php?id=22">Link</a>
如果用户单击“是”,则应加载链接,如果“否”,则不会发生任何事情。
我知道如何在表单中执行此操作,使用运行返回或.但是,如何使用链接执行此操作?onclick
true
false
<a>
以最简单的方式,您可以在内联处理程序中使用 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,您可以使用 ,并提供实现或使用像jQuery这样的库,这将有助于解决跨浏览器问题)。您可以在MDN上阅读有关此高级事件处理方法的更多信息。attachEvent()
returnValue
getElementsByClassName()
我想远离被认为是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>
您也可以尝试以下操作:
<a href="" onclick="if (confirm('Delete selected item?')){return true;}else{event.stopPropagation(); event.preventDefault();};" title="Link Title">
Link Text
</a>