在onsubmit事件触发并且表单已通过action="mailto:yournamehere@somebox.com"提交后,是否有一种方法可以清除表单、关闭窗口或其他操作?是否有一个我可以通过JavaScript连接到的提交后事件?这必须是客户端的解决方案。
一个快速简易的解决方案:
<form action="mailto:email@email.com"
onsubmit="this.submit(); this.reset(); return false;">
function submit_form() {
document.formu1.submit();
document.formu1.reset();
}
<form name="formu1" action="action-page" method="POST" target="_blank" />
Name: <input type="text" name="name" /><br /><br />
Pass: <input type="password" name="pass" /><br /><br />
<input type="button" value="Send" onclick="submit_form();" />
</form>
没有这种事件。
你可以使用类似以下的方式来破解它:
// Begin anonymous wrapper function to limit the scope of variables
// and avoid namespace collisions.
(function () {
// Get a quick reference to the form.
var f = document.forms.myForm;
// Define a submit handler that won't actually
// do anything until after the form has "submitted"
f.onsubmit = function () {
setTimeout(f.reset, 1000);
}
}());
然而,action="mailto:…"的支持性较差,因此您应该使用真正的表单处理程序,而不是试图绕过mailto:的限制。
你可以简单地放置:
document.getElementById("myform").reset();
在你的onSubmit()
处理函数中。
.submit()
动作之后完成。 - undefined