【问题标题】:Confirmation before submitting form using jQuery使用 jQuery 提交表单之前的确认
【发布时间】:2014-04-10 13:40:00
【问题描述】:

我正在尝试在使用 jQuery 提交表单之前添加确认。 我在另一个 Stack Overflow 问题 form confirm before submit 中找到了一个很好的例子,但我无法让它工作。

jQuery:

$(function() {
    $('form#delete').submit(function() {
        var c = confirm("Click OK to continue?");
        return c;
    });
});

模板:

<form id="delete" action="{% url 'item_delete' item.id %}" method="post">{% csrf_token %}
    <input class="floatright" type="submit" value="Delete" />
</form>

我们怎样才能做到这一点?

【问题讨论】:

    标签: jquery forms confirm


    【解决方案1】:
       $('#delete').submit(function(event){
         if(!confirm("some text")){
            event.preventDefault();
          }
        });
    

    【讨论】:

      【解决方案2】:

      您正在提交表单,并且在检查确认后,您需要反向

      JS:

      $(function() {
         $("#delete_button").click(function(){
            if (confirm("Click OK to continue?")){
               $('form#delete').submit();
            }
         });
      });
      

      HTML:

      <form id="delete" action="{% url 'item_delete' item.id %}" method="post">{% csrf_token %}
          <input id="delete_button" class="floatright" type="button" value="Delete" />
      </form>
      

      【讨论】:

      • 我在“其他”条件下添加了event.preventDefault();
      • 如果您以除单击此按钮之外的任何方式提交表单(例如,在另一个输入中按 Enter),这将不起作用。 @user3311206 的答案因此更好。
      • 跟进 Ben 的评论,他引用的 user3311206 是 iHadaj 于 2010 年 4 月 4 日的回答 - stackoverflow.com/a/22989986/160830
      【解决方案3】:
          $(function() {
             $('form#delete').click(function(e) {
              e.preventDefault();
              var c = confirm("Click OK to continue?");
              if(c){
                  $('form#delete').submit();
                }
            });
        });
      
          <form id="delete" action="www.google.com">
              <input id="deletesubmit" type="submit" value="Delete" />
          </form>
      

      【讨论】:

        【解决方案4】:

        确保将代码放入$(document).ready(),如下所示:

        $(document).ready(function () {
            $('form#delete').submit(function() {
                var c = confirm("Click OK to continue?");
                return c;
            });
        }); 
        

        【讨论】:

          【解决方案5】:

          在提交按钮上使用以下代码行

          onclick="if (confirm('some text')) return true; else return false;"
          

          例子

          <form id="delete" action="{% url 'item_delete' item.id %}" method="post">{% csrf_token %}
          <input class="floatright" type="submit"  onclick="if (confirm('some text')) return true; else return false;" value="Delete" />
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-09-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-02-11
            • 1970-01-01
            • 2017-01-20
            • 2011-09-23
            相关资源
            最近更新 更多