Невозможно отправить данные формы "multipart / form-data" с помощью функции jquery-validation.js submitHandler. - PullRequest
0 голосов
/ 26 сентября 2019

// Вот моя форма multipart / form-data

<form id="addNewRoomForm" enctype="multipart/form-data">
    <div class="form-group">
        <label for="room_title">Room Title</label>
        <input type="text" class="form-control" id="room_title" name="room_title" placeholder="Enter Room Title">
    </div>
    <div class="form-group">
        <label for="room_category">Room Category</label>
        <select class="form-control" id="room_category" name="room_category">
            <option value=""></option>
            <option value="1">Standard Room</option>
            <option value="2">Family Room</option>
        </select>
    </div>
    <div class="form-group">
        <label for="room-images">Room Images</label>
            <div class="input-images"></div><!--Here im using image-uploader.js Plugin By Christian Bayer-->
    </div>
    <div class="form-group">
        <label for="room_description">Room Description</label>
        <textarea class="form-control" id="room_description" name="room_description" rows="3"></textarea>
    </div>
    <button type="submit" class="btn btn-success btn-icon-split" id="addRoomBtn">
    <span class="icon text-white-50">
        <i class="fas fa-arrow-right"></i>
    </span>
    <span class="text">Add Room</span>
    </button>
</form>

// Вот мое представление формы ajax для вышеуказанной формы, которая работает fin


$("#addNewRoomForm").on('submit', function(e){
  var process_url = "<?php echo base_url();?>";
  e.preventDefault();
  var formData = new FormData(this);

  $.ajax({
      type: 'POST',
      url: process_url + 'admin/rooms/process_add_room',
      data: formData,
      // dataType: 'json',
      contentType: false,
      cache: false,
      processData:false,
      beforeSend: function(){
          alert("sending...");
      },
      success: function(msg){
          alert(msg)
      }
  });
});

//но когда я использую тот же код в функции submitHandler jquery-validation.js, он показывает «message: Undefined_index: room_title» в функции alert.ниже приведены коды, показывающие ошибку:

$('#addNewRoomForm').validate({ // initialize the plugin
      rules: {
        room_title: {
          required: true,
        },
        room_category: {
          required: true,
        }
      },
      messages: {
        room_title: {
          required: "Please Enter Room Title",          
        },
        room_category: {
          required: "Select Room Category",          
        }
      },
      highlight: function (input) {
        console.log(input);
        $(input).addClass('is-invalid');
      },
      unhighlight: function (input) {
        $(input).removeClass('is-invalid');
      },
      errorPlacement: function (error, element) {
     // $(element).parents('.input-group').append(error);
     $(element).parents('.form-group').append(error);   
   },
   submitHandler: function (form) {

    var process_url = "<?php echo base_url();?>";
      // e.preventDefault();
      var formData = new FormData(this);

      $.ajax({
        type: 'POST',
        url: process_url + 'admin/rooms/process_add_room',
        data: formData,
          // dataType: 'json',
          contentType: false,
          cache: false,
          processData:false,
          beforeSend: function(){
            alert("sending...");
          },
          success: function(msg){
            alert(msg)
          }
        });

      return false;
    }
  });

Я хочу отправить данные multipart / form с помощью jquery-validation.Я перепробовал все способы, теперь хочу твоей помощи.

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