Как проверить событие onkeyup без повторной отправки запроса на маршрутизацию в larravel - PullRequest
0 голосов
/ 17 октября 2018

проверить функцию Activity с помощью кода Ajax

$(document).on('keyup','#activity_name',function () {
            var error_activity = '';
            var activity = $('#activity_name').val();
            var _token = $('input[name="_token"]').val();
            $.ajax({
                type : 'post',
                url : '{{ url('checkactivity') }}',
                data :{activity:activity, _token:_token},
                success:function (result) {
                    if(result == 'unique'){
                        $('#activity_status').html('<lable class="text-sucess" style="color: blue"></lable>');
                        $('#activity').removeClass('has-error');
                        $('#activity_btn').attr('disabled',false);
                    }
                    else
                    {
                        $('#activity_status').html('<lable class="text-danger">Try Another!</lable>');
                        $('#activity').addClass('has-error');
                        $('#activity_btn').attr('disabled','disabled');
                    }
                }
            });
        });

Мое поле ввода, и здесь он всегда вызывает событие Onkeyup, когда я вхожу в одно слово в поле ввода и для каждого слова, которое он отправляет сообщениеrequest.

<div class="form-group">
                <label for="checkbox">Group</label>
                <select class="form-control form-control-sm"  id="activitygroup" name="activitydeleverable">
                    <option>Select</option>
                    @foreach(App\Groups::all() as $group_name)
                        <option value="{{ $group_name->id }}">{{ $group_name->name }}</option>
                    @endforeach
                </select>      
            </div>
            <button type="submit" id="activity_btn" onclick="insertactivity()" class="btn btn-info">Insert</button>

вот моя функция контроллера

function checkactivity(Request $request){
    $data = Activities::whereName($request->activity)->first();
    if (!is_null($data)){
        echo 'not_unique';
    }
    else
    {
        echo 'unique';
    }
}

Мой код работает идеально, но у меня есть проблема.В каждом отдельном слове мой onkeyup Event Ajax отправляет запрос в db и проверяет, доступны данные в db или нет.но я должен прекратить это делать снова и снова отправлять запрос.это может замедлить работу моей системы, поэтому я должен решить эту проблему, пожалуйста, решите эту логическую проблему, мне нужно остановить этот пост или нужно только один пост запрос. Нет изображения на изображении

1 Ответ

0 голосов
/ 17 октября 2018

В этом решенном вопросе вы найдете всю информацию о желаемом решении:

Как отложить обработчик .keyup () до тех пор, пока пользователь не перестанет печатать?

...