Как я могу запретить модальное скрытие при отправке формы? - PullRequest
0 голосов
/ 07 мая 2019

Я работаю со своей проверкой на стороне сервера с вдохновением от laravel.Я изо всех сил вставляю валидацию в мой модал, а также с помощью кнопки type = "submit".Когда я нажимаю кнопку «Сохранить» с пустыми входами, модальное окно закрывается, а когда я снова открываю модальное, ошибка уже появляется.Я хочу избежать модального скрытия при отправке формы.Как я могу остановить модальное закрытие, если входы пусты?Я использую кнопку type = "submit"?

  addUnitCategory : function() {
        axios({
            method : "POST",
            url : this.urlRoot + "unit_category/add_unit_category.php",
            data : {
                description : this.unit_category_description,
                unit : this.unit_category_unit
            }
        }).then(function (response){
            vm.retrieveUnitCategory();
            swal("Congrats!", " New unit category added!", "success");  
            vm.clearData();
        }).catch(error => {
            console.info(error.config);
        });
    },
    validationCategoryUnit : function() {
        if (this.unit_category_description || this.unit_category_unit) {
            $('#myModal').modal('hide');
            vm.addUnitCategory();
            return true;
        }
        if (!this.unit_category_description || !this.unit_category_unit) {
            return false;
        }   
    },

   <--Form-->
   <form method="post" @submit="validationCategoryUnit()">
   <--Button-->
   <div class="modal-footer">
    <button type="submit" @click="validationCategoryUnit()">Save</button>
   </div>

   <--Validation-->

   if($_SERVER['REQUEST_METHOD'] == "POST") {
    $validation = new Validation();
    $data = [
        "unit_category_description" => $_POST['unit_category_description'] ? 'unit_category_description' : '',
        "unit_category_unit" => $_POST['unit_category_unit'] ? 'unit_category_unit'  : '',
    ];
    $validation->validate($data, [
        "unit_category_description" => "required|maxlen:45",
        "unit_category_unit" => "required|minlen:5|maxlen:20"
    ]);

    $errors = $validation->getErrors();
} else {
    $data = [
       "unit_category_description" => "",
       "unit_category_unit" => ""
    ];
    $errors = [
        "unit_category_description" => "",
        "unit_category_unit" => ""
    ];
}
 if (isset($_POST['submit'])) {
    if($data) {
    echo $data; 
}

1 Ответ

0 голосов
/ 07 мая 2019

Если вы хотите, вы можете отправить форму из своего кода js вместо кнопки submit.В Jquery это будет выглядеть так:

$("#MyForm").submit()

С помощью этого вы можете контролировать, когда форма отправляется в соответствии с модальным.Надеюсь, это помогло.

...