You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加return false后表单无法提交至welcome.php问题求助

嘿,我完全懂你遇到的糟心事——本来好好的表单提交功能,加了return false想避免注册出问题,结果倒好,哪怕所有校验都达标了,表单也死活跳不到welcome.php,对吧?

问题根源

你加的return false在表单提交的回调里是“一刀切”的——它会同时阻止表单的默认提交行为和事件冒泡,不管你的校验有没有通过,只要函数最后返回false,表单就不会往welcome.php提交。你需要的是只在校验失败时阻止提交,校验通过就让表单走正常流程。

修复方案

调整你的校验函数逻辑,只有当校验不通过时才返回false阻止提交,校验通过则返回true让表单正常提交。另外还要注意正确传递event参数,避免event.preventDefault()报错。

修改后的代码示例:

<html>
<head>
<script>
// 记得接收event参数
function myFunction(event) {
  var passw_1 = document.myform.password1.value;
  var passw_2 = document.myform.password2.value;
  
  // 只有密码不一致时才阻止提交
  if (passw_1 != passw_2) {
    alert("You didn't enter the same password.");
    event.preventDefault();
    return false;
  }
  
  // 校验通过,允许表单提交到welcome.php
  return true;
}
</script>
</head>
<body>
<!-- 重点:onsubmit要返回函数的执行结果 -->
<form name="myform" action="welcome.php" method="post" onsubmit="return myFunction(event)">
  <!-- 用户名、邮箱输入框 -->
  <input type="text" name="username" placeholder="Username">
  <input type="email" name="email" placeholder="Email">
  <!-- 密码输入框 -->
  <input type="password" name="password1" placeholder="Password">
  <input type="password" name="password2" placeholder="Confirm Password">
  <input type="submit" value="Submit">
</form>
</body>
</html>

关键细节

表单的onsubmit="return myFunction(event)"是核心:当函数返回true时,浏览器会执行默认的表单提交动作(跳转到welcome.php);返回false时则会阻止提交。这样就能精准控制只有校验失败时才拦截,校验通过就正常提交啦。

内容的提问来源于stack exchange,提问作者Leo Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:22:53