点击链接后,在JavaScript中显示确认弹出窗口

10

如何制作一个超链接,在单击它时会显示一个弹出窗口,询问“您确定吗?”

<INPUT TYPE="Button" NAME="confirm" VALUE="???" onClick="message()">

我已经有一个可用的message()函数了。我只需要知道超链接的输入类型应该是什么。

4个回答

23
<a href="http://somewhere_else" onclick="return confirm()">
当用户点击链接时,将调用confirm函数。如果确认函数返回false,则取消链接遍历;如果返回true,则进行链接遍历。

15
<a href="http://something.com" onclick="return confirmAction()">try to click, I dare you</a>

使用该函数

function confirmAction(){
      var confirmed = confirm("Are you sure? This will remove this entry forever.");
      return confirmed;
}

(你也可以立即返回确认,我将其分开以方便阅读)

在FF、Chrome和IE中测试过


你的解决方案对我有用,可能是因为我从PHP中回显了href链接。谢谢! - Daydah

2
如Nahom所说,除了我会将javascript:message()调用直接放在href部分(不需要onclik)。
注意:将JavaScript调用保留在onClick中有一个好处:在href属性中,您可以放置一个URL,以便在用户未启用JavaScript时跳转到该URL。这样,如果他们启用了JS,则会运行您的代码。如果他们没有启用,则会去某个地方,在那里他们被指示启用它(也许)。
现在,您的message例程不仅必须提出问题,还必须使用答案:如果是肯定的,它必须在表单上调用submit()来发布表单。您可以在调用中传递this以简化获取表单。
个人而言,我会选择一个按钮(如您所示的输入标记)而不是一个简单的链接来执行此过程:它会为用户使用更熟悉的范例。
[编辑]由于我喜欢验证我给出的答案,所以我写了一个简单的测试:
<script type="text/javascript" language="JavaScript">
function AskAndSubmit(t)
{
  var answer = confirm("Are you sure you want to do this?");
  if (answer)
  {
    t.form.submit();
  }
}
</script>

<form action="Tests/Test.html" method="GET" name="subscriberAddForm">
<input type="hidden" name="locationId" value="2721"/>
<input type="text" name="text" value="3.1415926535897732384"/>
<input type="button" name="Confirm" value="Submit this form" onclick="AskAndSubmit(this)"/>
</form>

是的,在这里提交只会重新加载页面... 仅在FF3中测试过。

[编辑]按照评论中的建议进行了修改... :-)


"t.parentNode" 在这个例子中可以工作,但它很脆弱,因为它包含一个假设。更好的选择是 "t.form"。 - Tomalak

0
<a href="#" onclick="message(); return false;">???</a>

只有当点击无需导航用户到另一个页面时,此答案才是可行的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接