Javascript 表单提交前正在重置,如何让它等待几秒钟?
我试图重置一个表单,我有一个函数,表单在提交之前重置。有没有办法让它等几秒钟Javascript 表单提交前正在重置,如何让它等待几秒钟?,javascript,Javascript,我试图重置一个表单,我有一个函数,表单在提交之前重置。有没有办法让它等几秒钟 <form action="#" method="POST" id="file-form" name="file-form" enctype="multipart/form-data"> <div class="file-field input-field"> <div class="btn"> <span>File</span&
<form action="#" method="POST" id="file-form" name="file-form" enctype="multipart/form-data">
<div class="file-field input-field">
<div class="btn">
<span>File</span>
<input type="file" class="upload" id="files" name="files" multiple>
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text" placeholder="Upload one or more files">
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" value="submit" name="action" onclick="submitForm()">Submit
<i class="material-icons right">send</i>
</button>
</form>
<script type="text/javascript">
function submitForm() {
var resetForm = document.getElementsByName('file-form')[0];
resetForm.submit();
resetForm.reset();
return false;
}
</script>
文件
提交
发送
函数submitForm(){
var resetForm=document.getElementsByName('file-form')[0];
resetForm.submit();
resetForm.reset();
返回false;
}
关于您的问题
有没有办法让它等几秒钟
<form action="#" method="POST" id="file-form" name="file-form" enctype="multipart/form-data">
<div class="file-field input-field">
<div class="btn">
<span>File</span>
<input type="file" class="upload" id="files" name="files" multiple>
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text" placeholder="Upload one or more files">
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" value="submit" name="action" onclick="submitForm()">Submit
<i class="material-icons right">send</i>
</button>
</form>
<script type="text/javascript">
function submitForm() {
var resetForm = document.getElementsByName('file-form')[0];
resetForm.submit();
resetForm.reset();
return false;
}
</script>
您可以使用setTimeOut方法在3秒后重置表单
var formReset;
function triggerReset() {
formReset= setTimeout(resetDelay, 3000);
}
function resetDelay() {
resetForm.reset();
}
function submitForm() {
var resetForm = document.getElementsByName('file-form')[0];
resetForm.submit();
triggerReset();
return false;
}
也许是这样?提交表格时,您打算怎么做?为什么要重置?当您调用
.submit()
时,浏览器将离开页面,那么您为什么要在以后执行某些操作?你为什么要使用JS事件处理程序?@Bergi howd你知道它不能解决他的真正问题。如果您阅读OOPs代码,它有“waves effect waves light”类。如果我是对的,他想要达到的是在提交之前完成效果或动画。他说“表单在提交之前重置”(即使在代码中,表单在重置之前提交)。延迟重置仍将立即提交。我怀疑他担心的是动画,但我们的信息太少,无法回答。此外,如果问题真的是如何等待几秒钟,那么这个问题实际上是重复的。@Bergi我刚刚意识到我在注释中放置了“重置您的表单”,而不是要提交的代码。正在编辑我的答案。但到那时它将被提交很长时间了?您必须使用ajax
或xmlhttprequest
来提交表单。因此,在success中调用triggerReset()
,并将计时器更改为1秒。Ajax是XMLHttpRequest,但OP似乎也不使用它?即使这样,setTimeout
也将是错误的解决方案。