Laravel - загрузка изображений отправляет форму вместо открытия файла каталога - PullRequest
0 голосов
/ 09 марта 2020

В моем проекте Laravel -5.8 у меня многоэтапная форма. В форме я просматриваю изображение сотрудника из файла и загружаю его в форму перед отправкой всей формы. При нажатии Добавить сотрудника он должен отправить форму.

    <form class="tab-wizard wizard-circle form" action="{{ route("hr.employees.store") }}" method="post" enctype="multipart/form-data">

        {{csrf_field()}}

   <!-- Step 1 -->
   <h6>Personal Information</h6>          

    <section> 
     <!--<div class="card-body">-->       
            <div class="text-center">
              <input type="image" class="profile-user-img img-fluid img-circle"
                   src="{{asset('theme/adminlte3/dist/img/default.png')}}"

                    id="wizardPicturePreview" title="" width="150">                   

            <input type="file"  name="emp_image" id="wizard-picture" class="" hidden>
              <h4 class="profile-username text-center">Click On Image to Add Picture</h4>
            </div> 

            <!--<span style="color:blue;"><h4 class="box-title"><b>Personal Information</b></h4></span>-->
            <hr class="m-t-0 m-b-40">  

        <div class="row">
          <div class="col-12 col-sm-4">
            <div class="form-group">
              <!--<label>Minimal (.select2-danger)</label>-->
              <label class="control-label"> First Name:<span style="color:red;">*</span></label>
              <input  type="text" name="first_name" placeholder="Enter first name here" class="form-control" value="{{old('first_name')}}" style="width: 100%;">
            </div>
            <!-- /.form-group -->
          </div>
          <!-- /.col -->
          <div class="col-12 col-sm-4">
            <div class="form-group">
              <label class="control-label"> Other Name:</label>
              <input  type="text" name="other_name" placeholder="Enter other name here" class="form-control" value="{{old('other_name')}}" style="width: 100%;">
            </div>
            <!-- /.form-group -->
          </div>
          <!-- /.col -->
          <div class="col-12 col-sm-4">
            <div class="form-group">
                <label class="control-label"> Last Name:<span style="color:red;">*</span></label>
              <input  type="text" name="last_name" placeholder="Enter last name here" class="form-control" value="{{old('last_name')}}" style="width: 100%;">
            </div>
            <!-- /.form-group -->
          </div>
          <!-- /.col -->
        </div>
        <!-- /.row -->

        </section>    

   <button type="submit" id="button" class="btn btn-primary" hidden>Save</button>

Javascript

    <script>
        $(document).ready(function(){
        // Prepare the preview for profile picture
            $("#wizard-picture").change(function(){
                readURL(this);
            });
        });
        function readURL(input) {
            if (input.files && input.files[0]) {
                var reader = new FileReader();

                reader.onload = function (e) {
                    $('#wizardPicturePreview').attr('src', e.target.result).fadeIn('slow');
                }
                reader.readAsDataURL(input.files[0]);
            }           }
        $("input[type='image']").click(function(e) {
            e.preventDefault();
            $("input[id='wizard-picture']").click();
        });
        $(".form-control").keypress(function(e) {
            if (e.which == 13) {
                e.preventDefault();
                return false;
            }
        });

    </script>
    <script>
        //Custom design form example
        $(".tab-wizard").steps({
            headerTag: "h6",
            bodyTag: "section",
            enableAllSteps: true,
            transitionEffect: "fade",
            titleTemplate: '<span class="step">#index#</span> #title#',
            labels: {
                finish: "Add Employee"
            },
            onStepChanged: function (event, current, next) {
                if (current > 3) {
                    $("#save").hide();
                }
                else if( current <=3)
                {
                    $("#save").show();
                }

            },
            onFinished: function (event, currentIndex) {
                $("#button").click();
            },
        });
    </script>

    <script>
        $("input").attr('autocomplete', 'off');
        var $input = $('<button id="save" class="btn text-white" style="margin:0px 0 0 5px;padding:8.2px 12px;background-color:#009efb">Add Employee</button>');
        $input.appendTo($('ul[aria-label=Pagination]'));
        $('#save').click(function(){
            $("#button").click();
        })
    </script>

Теперь проблема заключается в том, что при нажатии на:

Нажмите на изображение, чтобы добавить изображение

вместо того, чтобы просмотреть изображение, оно отправит форму.

Как мне решить эту проблему?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...