【发布时间】:2015-08-25 22:59:30
【问题描述】:
我有一个简单的带有验证检查的 html 联系表单。
我希望在表单提交成功后执行一些命令。但是我设置这一切的方式......我无法让它工作。
HTML 联系表格:
<form id="mycontact_form" name="form_name" method="post" onsubmit="return validateForm();" action="https://domain.tld/cgi-bin/sendformmail.pl">
validateForm.js:
function validateForm() {
//validating input fields
if (!valid){
return false;
} else {
if(condition1 == true)
{
document.form_name.submit(); return;
}
else {
// doing stuff to form content
document.form_name.submit(); return;
}
}
}
当提交按钮被按下时,表单被验证并将被提交到 perl 脚本 sendformmail.pl,它返回一个 HTML Status 204,所以用户停留在这个页面上并且不会被重定向(这是我让这部分工作的唯一方法。
现在提交成功后我想要的是:
- 清除/重置表单并
- 一些小的 UI 内容:更改 2 个元素的背景 + 2 个输入字段的占位符/内部文本,以获取感谢信息。
但例如,如果我将document.form_name.reset() 放在document.form_name.submit() 之后,那就太快了。它在提交之前重置表单。我还尝试在onsubmit 中的validateForm() 之后调用另一个(独立)函数,但这似乎是错误的(好吧,至少它不起作用)。
所以我想我需要将这 2 件事(重置 + CSS 更改)放在一个单独的函数中,并在成功提交表单后调用它。 但是如何、何时何地?
我对学习一个简单而有效的解决方案非常感兴趣。 (但也可以使用 jQuery)
感谢您的帮助。
【问题讨论】:
-
您的表单是 sendformmail.pl 文件的一部分吗?
-
表格在html网站上。 perl 脚本用于评估表单数据并将其作为电子邮件发送。我找到了脚本here。
标签: javascript jquery html forms onsubmit