input type="file" 的文件上传之前进行校验,只有校验通过的时候才弹出文件选择框

451 阅读1分钟

使用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>