【问题标题】:Resetting a form with JavaScript使用 JavaScript 重置表单
【发布时间】:2009-08-05 19:10:47
【问题描述】:

我正在使用以下内容重置我的表单:

<script type="text/javascript">

window.onload = function () {
document.getElementsByName("email_address")[0].value = "";
document.getElementsByName("remove")[0].value = "off";
}



</script>

问题是复选框“删除”似乎在服务器端脚本可以运行之前被重置。因此,实际上用户在复选框上选择的任何内容都会被覆盖并设置为关闭,然后才能运行 php 脚本。然而,输入框“email_address”很好......

测试...

//this is already set to OFF by the time we get here....even if the user may have ticked the checkbox to ON
echo $HTTP_GET_VARS['remove'];

//this is fine, the email_address input is read and not reset...
echo $HTTP_GET_VARS['email_address'];

谁能解释一下? 我显然希望在我的服务器端脚本完成处理后重置表单,但由于某种原因它提前重置了复选框,但输入框还可以......

谢谢!

【问题讨论】:

  • 如果您要重置整个表单,只需在表单中添加一个 即可。
  • 我认为 chican 是在提交后自动重置,而不是用户启动的。
  • 是的,因为表单返回一个消息堆栈,例如“您的电子邮件已成功添加”或“错误,您的电子邮件无效”等,我将这些错误堆栈与表单输出在同一页面上,因此在生成堆栈消息后,我希望清除表单

标签: php javascript


【解决方案1】:

我真的很困惑。您说您不想在表单返回提交后值之前清除表单(您是否在此处执行 ajax 表单?)但是您发布的示例代码设置为在页面加载时执行。 当然它会在提交之前重置。

相反,您需要将其设置为在表单提交完成并获得预期响应时执行。

并且不必费心手动重置每个表单元素,只需使用form.reset() 方法即可。

【讨论】:

  • 您好,感谢您的提示,您能告诉我在表单提交完成后如何执行 javascript 重置吗?谢谢
  • 当然,但首先您需要分享提交表单的方式。修改您的原始问题以包含一些有关如何触发表单提交的示例代码。
【解决方案2】:

尝试以下而不是关闭

document.getElementsByName("remove")[0].checked = false;

干杯

【讨论】:

  • 我今天再次尝试了所有这些技巧,这个技巧现在证明对我有用,谢谢。我想我昨天太累了,无法正确实施解决方案:o
【解决方案3】:

为什么不...

document.forms[0].reset();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2010-12-14
    • 2015-09-02
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多