【问题标题】:Form always submitting even when you click cancel即使单击取消,表单也始终提交
【发布时间】:2013-02-02 20:29:48
【问题描述】:

它转到正确的 if 语句,但无论哪种方式,它总是提交表单。如果声明为真,我不希望它提交,如果他们按取消,我也不希望它提交。

我也看到很多类似的问题,但他们的答案都不是正确的解决方案。

我的表单html:

<form action="actual link here" method="POST" target="_blank" onsubmit="ordering()">

我的js:

function ordering() {
    if($('#total').html() == "$0.00") {
        alert("You have not ordered anything. Please use our contact page if you wish to contact us.");
        return false;
    }
    else {
        return window.confirm("Are you sure?");
    }
}

【问题讨论】:

  • 你有没有把按钮放在表单之外?
  • 不,它在里面,对不起,我会发布整个 html 表单的东西,但它有很多项目,我相信我做对了那部分
  • 试试.val()而不是.html()
  • 要停止提交,您需要使用.on('click', function(e){...}); 并使用e.preventDefault(); 停止提交,然后在满足您的条件时手动提交。 SEE HERE
  • @ROYFinley 你能告诉我这个吗?我试过使用 preventDefault,但我不确定如何手动提交

标签: jquery html forms


【解决方案1】:

为了停止提交事件,你需要指定return ordering()like:

<form action="actual link here" method="POST" target="_blank" onsubmit="return ordering()">

【讨论】:

    【解决方案2】:

    您可以将按钮更改为 div 并将函数附加到它的 onclick 属性:

    <div id='submitButton' onclick="ordering()"></div>
    

    并对你的函数做一个小的改动:

    function ordering() {
       if($('#total').html() == "$0.00") {
         alert("You have not ordered anything. Please use our contact page if you wish to contact us.");
        }
        else if(window.confirm("Are you sure?")) {
        $('form').submit();
        }
    }
    

    如果您不介意为 div 编写样式以使其看起来像一个按钮。

    【讨论】:

      【解决方案3】:

      由于您已经在使用 jQuery,因此您不必在页面上添加内联 'onsubmit=....' javascript,只需使用以下代码:

      为表单提供一个 ID(或一个类),以便使用 jQuery 更轻松地选择它;

      <form id='myform' action="actual link here" method="POST" target="_blank">
      
      <script>
      $(document).ready(function () {
      
          $('#myform').on('submit', function(e) {
              if($('#total').html() == "$0.00") {
                      e.preventDefault();
                  alert("You have not ordered anything. Please use our contact page if you wish to contact us.");
                  return false;
              } else {
                  return window.confirm("Are you sure?");
              }
          }
      });
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多