使用input上传文件,符合条件才打开选择文件框。而不是即打开文件选择框,又有校验提示。
解决方案
event.preventDefault()
说明
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是submit,在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。
代码实现
<div class="file-btn">OCR识图
<input id="file-input" type="file" name="image" accept="image/*,.pdf" onchange="ocrUpload()" >
</div>
<script>
//通过preventDefault方法在校验不通过时阻止选择文件框弹出
$('#file-input').on('click',function (e){
if(mini.getbyName("projectNo").getValue()===''){
e.preventDefault()
mini.alert("请先选择项目");
return;
}
if(mini.getbyName("contractNo").getValue()===''){
e.preventDefault()
mini.alert("请先选择合同");
return;
}
})
文件上传逻辑省略
function ocrUpload() {}
</script>