ajax - 如何在不一次又一次发送发布请求到 laravel 路由的情况下验证 onkeyup 事件

标签 ajax validation laravel-5 request onkeyup

使用 Ajax 代码验证 Activity 函数

$(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,并且在每个单词上他发送一个发布请求。

<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>

这是我的 Controller 函数

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

我的代码工作完美,但我遇到了问题。在每个单词上,我的 onkeyup 事件 Ajax 向 db 发送一个 post 请求,并检查数据是否在 db 中可用。但我必须停止这样做,一次又一次地发布请求。它可能会减慢我的系统,所以我必须解决这个问题请解决这个逻辑问题我必须停止这个帖子请求或只需要一个帖子请求。 You can see no of request in image

最佳答案

您将在这个已解决的问题中找到有关您所需解决方案的所有信息:

How to delay the .keyup() handler until the user stops typing?

关于ajax - 如何在不一次又一次发送发布请求到 laravel 路由的情况下验证 onkeyup 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52848985/

相关文章:

php - Laravel 使用 MAMP : PDOException in Connector. php 第 55 行时出错:

javascript - 获取 href 并将其放在 src 上

php - 从 php 文件动态加载 css 内容

java - 使用 XMLSchema : Best Practices? (Java) 配置解析代码中的 XML 验证

tsql - 如何在 CAST/CONVERT 之前检查 VARCHAR(n) 的格式良好的 XML

javascript:计算文本输入中的数字

mysql - 如何使用多个 where 子句联合或连接多个表?

mysql - Laravel Query 获取列上的不同值,但在使用 orderby 获取最新的不同值之后

javascript - AJAX:重复条目

java - 我应该为聊天网站使用 PHP 还是 JSP?