【问题标题】:Can you dynamically load form paramaters可以动态加载表单参数吗
【发布时间】:2026-01-12 16:50:01
【问题描述】:

我在我的 Web 表单中加入了一些 recapthca,并希望维护客户端表单验证。目前的形式是

  <form action="ajax/ajax_repSubTesting.php" method="POST" name="submitform" onSubmit="checkform(this)">

checkform() 是一系列 if/else 语句,用于通知用户数据字段为空白或无效。问题是,一旦单击提交按钮,就会调用 checkform 弹出错误窗口,并且一旦关闭就会调用 ajax 脚本。

我将如何编写代码以使表单操作依赖于正确验证的 checkform() 中的所有内容?

【问题讨论】:

  • 问题在于 Ajax 方法不依赖于 checkform 函数的结果。向我们展示你所有的 javascript。

标签: javascript php html


【解决方案1】:

从内联 onsubmit 事件处理程序返回 false 将取消表单提交。对于无效的表单数据,checkform 函数应返回 false(视情况而定)

function checkform () {
   if (!valid) { return false; }
   // ..
}

并且返回值必须通过内联事件处理程序传播

<form .. onsubmit="return checkform()">
                   ^^^^^^

另见

(另外,'ajax' 通常通过 XHR 调用,而不是表单提交。)

【讨论】:

  • return checkform();解决了这个问题,因为如果发现错误,checkform 返回 false。非常感谢
【解决方案2】:

尝试将 id 添加到提交按钮和表单本身。 然后在验证方法的开头添加 event.preventDefault(); 这将取消表单提交。

如果表单有效,则在验证方法的末尾添加下一个 jQuery 方法: $('form').submit() 会触发表单提交。

【讨论】: