繁体   English   中英

在javascript表单提交后提交事件

[英]Onsubmit event after javascript form submit

我有一个上传文件表单,我尝试上传文件时,所以我尝试这样的事情:

<form enctype="multipart/form-data" method="POST" onsubmit="return
UploadFile(this);">                                 
<input id="upfile" type="file" onchange="this.form.submit();"/>
</form>

form.submit()有效,但我当然需要对提交进行一些验证,所以我试着运行一个函数:

 function UploadFile(file){
       alert('Bleah');
       return false;
    }

在正常情况下它应该返回false,并且表单不应该重新加载页面,但这不会发生。

如果我在表单中添加提交输入,它按预期工作:

<form enctype="multipart/form-data" method="POST" onsubmit="return
UploadFile(this);">
<input type="submit" name="upload" value="Upload">                                  
<input id="upfile" type="file"/>
</form>

任何人都可以解释我有什么问题吗?

试试这个:

 function UploadFile(file) { if (file.value === '') { alert("Invalid File"); } else { alert('Form will be submitted now!'); document.getElementById('myForm').submit(); } } 
 <form enctype="multipart/form-data" method="POST" id="myForm"> <input id="upfile" name="upfile" type="file" onchange="UploadFile(this);" /> </form> 

要在文件选中时上传文件,您必须在input更改上调用UploadFile()函数,而不是在form更改标记上调用。 如果您提交输入更改,则会重新加载页面。 所以,你最好使用这样的东西:

$('#upfile').onchange(function(){
   if(UploadFile(this.parent('form'))){
   this.parent('form').submit();
}
})

而且你不再需要onchangeonsubmit内部的标签。

解:

<form id="formname" enctype="multipart/form-data" method="POST" action="test.html">
<input id="upfile" type="file" onchange="sendForm()"/>
</form>

<script>
  function sendForm() {
    var field = document.getElementById("upfile");
    if (field) {
      console.log("the is a file and the form will be sent");
      document.forms["formname"].submit();
    }

  }

</script>

OLD--我不明白,你想如何在没有提交按钮的情况下提交表单? 或者至少在javascript“object.addEventListener(”keydown“,myScript)中处理提交;”

- 好吧,我再次读了它,我明白了这个问题

您需要在javascript上处理此问题并检测文件的选择。 看看这个帖子:

如何检查是否使用javascript选择了文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM