首页 > 解决方案 > 表单 onsubmit 返回 false 并仍然继续提交表单

问题描述

我正在使用 php5.6 并打印 html 并尝试获得确认提示以使用 JS。从 weppage 订购产品时,它应该询问人们是否确定订单已完成,并且他/她在“ok”后继续结帐。取消继续购物或更改个人信息。

提示有效,if(!conf)被执行并且页面被重定向到顶部,但它仍然提交表单并在取消时创建一个订单。这是代码,如果重要,它会包含在其他文件中。正在搜索stackoverflow一段时间,并没有看到这种问题。试图将“onclick”放在按钮上,但情况更糟,并且出现了一些错误。

ob_start();
    ?>

    <script type="text/javascript">
        function continueToPayment() {
            var conf = confirm("<?php echo SQL::Translate('payment_confirm_text') ?>");
            if(!conf) {
                window.location.href = '#';
                return false;
            }
            else{
                return true;
            }
        }
    </script>

    <?php
    print "<form onsubmit='return continueToPayment()' action='" . SQL::Table("Pages")->Href("thank_you") . "?pm=cash&ord=$next_reference_number' method=\"POST\">";
    $amount = number_format((($_SESSION['sc_data']['final_total'])/100),2,".","");
    print "<input type='hidden' name='action' value='send_cash_order'>";

    echo ReturnOrderSubmitInfoHtml();

    print "<button type='submit' id='send_order' class='pc-btn pc-btn-sc'>" . SQL::Translate(PrintPaymentText('cash')) . "</button>";
    print "<br/>";

    print "</form>";

    $form = ob_get_clean();

标签: javascriptphpformspromptonsubmit

解决方案


感谢大家为我的问题做出贡献!我已经解决了,所以问题是已经有一个 JS 文件在检查是否接受术语,我试图将 js 放到 php 中,这显然被那个 js 文件覆盖了。我放

     var conf = confirm("example");
         if(!conf) {
             window.scrollTo(0, 0);
             return false;
        }

在那里,它奏效了。已经有一个event.preventDefault(). window.scrollTo(0, 0) 与 window.location.href = '#' 相同。无论如何,现在我只需要担心翻译和更改其他文件,而不是用现金支付。


推荐阅读