Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单提交前正在重置,如何让它等待几秒钟?_Javascript - Fatal编程技术网

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
也将是错误的解决方案。