Javascript 在提交表单之前检查文件是否已上载

Javascript 在提交表单之前检查文件是否已上载,javascript,jquery,Javascript,Jquery,在通过JavaScript/jQuery单击submit按钮之前,我想检查用户是否上传了文件 如果文件未上载,我不希望允许表单提交 我的html是: <form action="/home/save" method="post" enctype="multipart/form-data" > Upload Image: <input type="file" name="image" /> <input type="submit" value

在通过JavaScript/jQuery单击submit按钮之前,我想检查用户是否上传了文件

如果文件未上载,我不希望允许表单提交

我的html是:

<form action="/home/save" method="post" enctype="multipart/form-data" >   
    Upload Image: <input type="file" name="image" />  
    <input type="submit" value="upload" />
</form>

上载图像:
使用jQuery:

if(!$('input[type="file"]').val()) {
   // No file is uploaded, do not submit.
   return false;
}


使用HTML5
required
属性(注意:仅在Chrome、Firefox、Opera、Safari 5(Mac上)和IE10中支持):



这实际上是一个糟糕的设计。为什么即使表单不完整也要上传文件?所需属性没有得到广泛支持。与零相比,这里有点混乱。它会起作用,因为它强制为一个虚假值,
是虚假的。我只想
if(!$('input[type=“file”]”).val()
在HTML5中,您可以在HTML元素上使用
required
。@Ohgodwhy更新了,但提到了浏览器compatibilty@elclanrs是的,我没有真正思考就把答案弄清楚了,更新了@Zenith Safari 5在Mac上支持它,但它不提供任何反馈,如“必需的文件!”或者别的什么。它在当前版本的Opera上也能很好地工作。对于不支持它的浏览器,只需使用
formnovalidate
属性即可。无论哪种方式,如果您担心兼容性,您可能需要一个类似Modernizer的功能检测库。
<input type="file" name="image" required/>