【问题标题】:Display confirmation popup with JavaScript upon clicking on a link单击链接时显示带有 JavaScript 的确认弹出窗口
【发布时间】:2010-09-22 13:26:53
【问题描述】:

如何创建其中一个超链接,当您单击它时,它会显示一个弹出窗口,询问“您确定吗?”

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

我已经有一个 message() 函数在工作。我只需要知道超链接的输入类型是什么。

【问题讨论】:

    标签: javascript html user-interface popup


    【解决方案1】:
    <a href="http://somewhere_else" onclick="return confirm()">
    

    当用户点击链接时,confirm 函数将被调用。如果confirm函数返回false,则取消链接遍历,如果返回true,则遍历链接。

    【讨论】:

      【解决方案2】:
      <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 链接。谢谢!
      【解决方案3】:

      正如 Nahom 所说,除了我将 javascript:message() 调用直接放在 href 部分(然后不需要 onclik)。

      注意:在 onClick 中保留 JavaScript 调用有一个好处:在 href 属性中,如果用户没有 URL,您可以放置​​一个要转到的 URL启用 JavaScript。这样,如果他们有 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 中测试。

      [编辑] 遵循 cmets 中的建议... :-)

      【讨论】:

      • "t.parentNode" 适用于这个例子,但它很脆弱,因为它包含一个假设。更好的是“t.form”。
      【解决方案4】:
      <a href="#" onclick="message(); return false;">???</a>
      

      只有当点击不需要导航用户到另一个页面时,这个答案才可以。

      【讨论】:

        猜你喜欢
        • 2012-02-20
        • 2014-08-09
        • 1970-01-01
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 2012-09-10
        • 2018-11-08
        相关资源
        最近更新 更多