javascript - 表单 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();
解决方案
感谢大家为我的问题做出贡献!我已经解决了,所以问题是已经有一个 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 = '#' 相同。无论如何,现在我只需要担心翻译和更改其他文件,而不是用现金支付。
推荐阅读
- react-native - 绝对定位时 FlatList 滚动中断
- ruby-on-rails - Guard / Minitest 失败 - 'capybara 不是捆绑包的一部分。将它添加到您的 Gemfile 中。
- gcc - 如何在 miniconda 环境中升级 gfortran
- java - 为什么 Random::nextInt 在 java 中不允许作为方法参考?
- c++ - 使用 nlohmann/json 获取 api
- c# - winforms C# .NET - 如何在使用循环时提高代码的性能(for、foreach 等...)
- google-workflows - 如何在 Nodejs 中执行谷歌云工作流时包含运行时参数?
- python - __init__.py 中的自定义函数导致尚未安装 Django 应用程序错误
- html - 如何使用 flexbox 创建一个水平滚动图片库,其中图像大小可以响应到一个点
- java - 提供向后兼容性时如何摆脱弃用警告?