如何防止在选择文件之前提交表单?

时间:2018-10-02 15:31:17

标签: javascript jquery laravel laravel-blade

我一直试图为文件上传和表单提交设置相同的按钮,但是我面临以下问题。

{!! Form::open(array('route'=>'users.store', 'files' => true, 'id' => 'dpform')) !!}
{{ Form::file('dp', ['class' => 'form-control', 'hidden', 'id' => 'dpfile']) }}
<button id="dpbtn" class="btn btn-info btn-sm">Upload A Pic</button>
<!-- {{ Form::submit('Submit', array('class' => 'btn btn-success', 'style' => 'margin-top: 20px'))}} -->
{!! Form::close() !!}

这是我的图片上传代码。我在这里使用laravel表格。 我搜索了几个答案,以下是我目前的jQuery代码:

$(document).ready(function() {
$("#dpbtn").on("click",function(){
    $("#dpfile").click();   //this should open file selection dialog
  });
  $("#dpfile").change(function(){
    $("#dpform").submit();  //this should submit form when file has been selected
  });
});

我想要的是,当我单击#dpbtn时,应通过在#dpfile上触发.click()来打开文件选择窗口。当我选择文件时,应使用#dpform上的.submit()提交表单。但是,当我单击#dpbtn时,它将打开文件选择器对话框,并且表单也同时提交。因此,表单提交时没有任何文件。没有选择文件时如何防止提交表单?

1 个答案:

答案 0 :(得分:0)

所以请检查长度

if (this.files.length) {
   this.form.submit()
}