Динамические c формы ввода добавлены с использованием JavaScript проверки в Laravel? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть несколько полей ввода в форме. Который может быть добавлен динамически, используя javascript. Например, если нажать кнопку «Добавить еще один выпуск», снова добавляется div, как показано ниже, со всеми полями ввода.

<div class="shadow p-4 border mb-5 postgraduation-div">
    <span class="bg-dark text-white py-1 px-3 my-board-name">Post Graduation</span>
    <div class="form-check">
        <input class="form-check-input" name="pg_checkbox[]" value="pg_checked" type="checkbox">
        <label class="form-check-label"> Enable </label>
    </div>
    <div class="row">
        <div class="col">
            <div class="form-group">
                <label for="employee-name">University: </label>
                <input type="text" class="form-control" name="pg_university[]">
            </div>
        </div>
        <div class="col">
            <div class="form-group">
                <label for="exampleInputEmail1">Passing Year: </label>
                <input type="text" class="form-control" name="pg_passing_year[]">
            </div>
        </div>
        <div class="col">
            <div class="form-group">
                <label for="exampleInputEmail1">Percentage: </label>
                <input type="text" class="form-control" name="pg_percentage[]">
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col">
            <div class="form-group">
                <label for="exampleInputEmail1">Degree: </label>
                <input type="text" class="form-control" name="pg_degree[]">
            </div>                        
        </div>
        <div class="col">
            <div class="form-group">
                <label for="exampleInputEmail1">Subject: </label>
                <input type="text" class="form-control" name="pg_subject[]">
            </div>
        </div>
    </div>
    <div class="text-center">
        <span class="btn btn-outline-dark btn-sm add-pg-btn"><i class="fas fa-plus"></i> Add another Post Graduation</span>
    </div>
</div>

Сначала я должен проверить, установлен флажок или нет. Если флажок установлен, поля ввода должны быть проверены. Я могу сохранить данные, используя приведенный ниже код в моем контроллере:

if(request('pg_checkbox')){
    $pg_checkbox_count = count(request('pg_checkbox'));
    for($i=0; $i<$pg_checkbox_count; $i++){
        if(request('pg_checkbox')[$i] == 'pg_checked'){
            $postgraduation_data = new Postgraduation_data;
            $postgraduation_data->user_id = $user_id;
            $postgraduation_data->university = request('pg_university')[$i];
            $postgraduation_data->passing_year = request('pg_passing_year')[$i];
            $postgraduation_data->percentage = request('pg_percentage')[$i];
            $postgraduation_data->subject = request('pg_subject')[$i];
            $postgraduation_data->degree = request('pg_degree')[$i];
            $postgraduation_data->save();
        }
    }
}

Но я не могу проверить эти входные данные в моем классе пользовательских запросов:

$rules = [];
if(request('pg_checkbox')){
    $pg_checkbox_count = count(request('pg_checkbox'));
    for($i=0; $i<$pg_checkbox_count; $i++){
        if( request('pg_checkbox')[$i] == 'pg_checked'){
            $rules['pg_university'.$i] = 'required';
            $rules['pg_passing_year'.$i] = 'required | digits:4';
        }
    }
}

return $rules;

1 Ответ

0 голосов
/ 21 февраля 2020

Есть разные способы сделать это. Самый простой способ использовать валидатор класса - это ввести и использовать информацию внутри атрибута каждого класса. введите описание изображения здесь

 {{--Name--}}
 <label for="name" class="required_field">{{ __( 'articles.ArticleName' ) }}</label>
 <input type="text" id="name" 
                    name="name"
                    maxlength="30"
                    class="validate[required,maxSize[30]] form-control"
                    title="{{ __( 'articles.CreateTitleName' ) }}">

добавьте этот скрипт в javascript раздел:

<script type="text/javascript" charset="utf-8">
    $(document).ready(function () {
        $("#create_article_form").validationEngine();
    });
</script>

Загрузите файл валидатора по этой ссылке ниже и используйте его в своем проект.

https://github.com/posabsolute/jQuery-Validation-Engine/blob/master/README.md

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