我希望此链接具有一个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,您可以使用attachEvent()
,returnValue
并为getElementsByClassName()
jQuery之类的库提供实现或使用该库来解决跨浏览器问题)。您可以在MDN上阅读有关此高级事件处理方法的更多信息。
我想远离被认为是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>
问题内容: 我正在尝试使用自定义angularjs指令在上设置确认对话框: 这很好用,但不幸的是,未评估使用我的指令的标记内的表达式: (这种情况下不评估名称)。这似乎是由于我的指令的终端参数。您有解决方法的想法吗? 要测试我的代码,请执行以下操作:http : //plnkr.co/edit/EHmRpfwsgSfEFVMgRLgj?p=preview 问题答案: 如果您不介意不使用,则可以正常
你好,这就是我想做的。我想在用户单击链接后显示警报框。我的链接指向另一个php页面,但它将再次返回到找到链接的页面。我怎样才能做到这一点?有人能告诉我怎么做吗? 这是我尝试过的,但不起作用。
问题内容: 我有以下问题…我想在单击普通链接时设置会话变量,例如: 我的研究似乎指出,PHP无法以设置会话变量的方式赶上click事件。 我相信使用Ajax是可能的,但是如何呢?我的链接看起来像什么? 设置会话变量应如下所示: 简而言之:单击HTML中的链接时,必须设置会话变量。 我该怎么做? PS:我对Ajax不太熟悉,但是我会赶上。 编辑:链接将指向同一页面,我也想避免类似“ home.php
问题内容: 我是Android的新手,已经完全绑定了我的应用程序,但是现在我希望对其进行更改。 当有人发送短信时,我想显示一个确认对话框,以发送短信询问是否发送短信。我必须为其编写一个源代码,并使其能够正常工作,但是如果用户未单击“是”或“取消”,该对话框将消失,但希望它仍将显示,直到用户未单击“是”或“我”为止,取消按钮。 如何解决? 问题答案: 当用户按下返回按钮时,它可以防止关闭警报对话框:
以下是我的所有主要脚本标记:
我有一个按钮(CustomDilaog活动),当点击显示自定义对话框和密码编辑文本,确定按钮和取消按钮时,如果你输入正确的密码,它会打开另一个活动(文本活动),直到现在一切正常, 我有两个部分的问题。 第一部分:当我在(文本活动)并按后退按钮返回(CustomDilaog活动)时,仍然对话框显示在它上面,如何让它关闭 第二部分:对话框启动后,如果我不写密码,只需单击“确定”按钮,edittext为