【问题标题】:HTML - How to do a Confirmation popup to a Submit button and then send the request?HTML - 如何对提交按钮进行确认弹出窗口,然后发送请求?
【发布时间】:2013-05-26 19:01:45
【问题描述】:

我正在学习使用 Django 的 Web 开发,并且在将代码放置在何处以决定是否在 HTML code 中提交请求时遇到了一些问题。

例如。有一个网页包含一个form(博客)供用户填写,点击保存按钮后,会弹出一个窗口询问您是否要confirm。如果点击confirm,则发送请求。

我搜索并找到了这个javascript 代码。

<script type="text/javascript">
function clicked() {
    alert('clicked');
}

<input type="submit" onclick="clicked();" value="Button" />

但我想这不是正确的功能,因为在我看来,每当您单击按钮时,都会提交请求。那么如何才能延迟提交请求,直到用户确认提交?

【问题讨论】:

  • 正确答案是@Isaac

标签: html django submit


【解决方案1】:

最紧凑的版本:

<input type="submit" onclick="return confirm('Are you sure?')" />

要注意的关键是return

-

因为给猫剥皮的方法有很多,这里有另一种替代方法:

HTML:

<input type="submit" onclick="clicked(event)" />

Javascript:

<script>
function clicked(e)
{
    if(!confirm('Are you sure?')) {
        e.preventDefault();
    }
}
</script>

【讨论】:

  • 完美答案!
  • 像魅力一样工作!
  • 它可以工作,但我可以用 YES 和 NO 更改 OK 和 CANCEL 按钮吗?
  • @Web.11 不幸的是没有,因为这是内置在浏览器中的
【解决方案2】:

我相信你想使用confirm()

<script type="text/javascript">
    function clicked() {
       if (confirm('Do you want to submit?')) {
           yourformelement.submit();
       } else {
           return false;
       }
    }

</script>

【讨论】:

    【解决方案3】:

    使用window.confirm() 代替window.alert()

    HTML:

    <input type="submit" onclick="return clicked();" value="Button" />
    

    JavaScript:

    function clicked() {
        return confirm('clicked');
    }
    

    【讨论】:

    • 你能解释一下这个函数会影响什么吗,即。根据我的理解,以前没有这个功能,每当我们点击提交按钮时,都会发送表单 POST 请求。现在我想让用户在发送 POST 请求之前确认他们的提交。那么上面的解决方案会在我们点击confirm()弹窗的OK后延迟发送请求吗?
    • 没错。 JavaScript 一直等到 confirm() 完成执行后再继续,return 要么暂停要么允许事件。
    • 应该是onsubmit,而不是onclick。否则,即使您点击“取消”,表单提交也会通过。
    【解决方案4】:
    <script type='text/javascript'>
    
    function foo() {
    
    
    var user_choice = window.confirm('Would you like to continue?');
    
    
    if(user_choice==true) {
    
    
    window.location='your url';  // you can also use element.submit() if your input type='submit' 
    
    
    } else {
    
    
    return false;
    
    
    }
    }
    
    </script>
    
    <input type="button" onClick="foo()" value="save">
    

    【讨论】:

      【解决方案5】:

      您可以使用的另一个选项是:

      onclick="if(confirm('Do you have sure ?')){}else{return false;};"
      

      在提交按钮上使用这个功能,你会得到你所期望的。

      【讨论】:

        【解决方案6】:

        对于 Django 表单,您可以在表单标签内添加确认对话框:

        <form action="{% url 'delete' %}" method="POST" onsubmit="return confirm ('Are you sure?')">
        

        【讨论】:

          猜你喜欢
          • 2013-03-17
          • 2015-06-02
          • 2018-11-02
          • 2012-07-21
          • 2012-01-26
          • 1970-01-01
          • 2014-12-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多