![](/img/trans.png)
[英]html/javascript onsubmit event not called on form submit to validate form
[英]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();
}
})
而且你不再需要onchange
和onsubmit
内部的标签。
解:
<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上处理此问题并检测文件的选择。 看看这个帖子:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.