javascript - 没有匹配的 jQuery 时搜索栏发出警报

标签 javascript php jquery html laravel

我为我的应用程序制作了简单的搜索栏。现在它通过数据属性搜索用户,但是当它找不到任何匹配项时,它不会显示任何内容。我希望它在没有匹配项时显示错误消息。我做了 if 语句,但它仅在我在输入中输入内容并将其删除时才显示。如何在搜索栏找不到任何用户时立即显示错误消息。

JS

       $(document).ready(function () {
//        Pokaż/Ukryj wyszukiwarkę
        $('.show-hide-search-bar').on('click', function () {
            if ($('.searcher-section').is(":visible")) {
                $('.searcher-section').hide("slide");
                $('.show-hide-search-bar').text('Pokaż Wyszukiwarkę');
            } else {
                $('.searcher-section').show("slide");
                $('.show-hide-search-bar').text('Ukryj Wyszukiwarkę');
            }
        });


//        Zmiana tekstu w zależności od pojawienia się searchera
        if ($('#agents').length > 0) {
            $('#label-searchbar').html('Imię, Nazwisko, Adres email');
            $('#input-searchbar').attr('placeholder', 'Podaj imię, nazwisko lub adres email');
        } else if ($('#company').length > 0) {
            $('#label-searchbar').html('Nazwa biura');
            $('#input-searchbar').attr('placeholder', 'Podaj nazwę biura');
        }


//Dynamiczne wyszukiwanie .card dla agentów | .clearfix dla listy

        $('.searcher-input').keyup(function (event) {
            $('.null-data').hide();
            if ($(this).val()) {
                var input = $(this).val();
                var trimmedInput = input.trim();
                var terms = input.split(/\W+/g);
                $(".card").hide();

                $(".clearfix.alt").hide();
                $(".card[data-agent*='" + trimmedInput + "' i]").show();

                $(".clearfix[data-name*='" + trimmedInput + "' i]").show();

//                $(".card[data-lastname*='" + trimmedInput + "']").show();
//                $(".card[data-lastname*='" + trimmedInput + "'][data-firstname*='" + trimmedInput + "']").show();
//                $(".card[data-email*='" + trimmedInput + "']").show();

                $(".col-xs-12").css("min-height", "0");
                $(".col-md-4").css("min-height", "0");
                $(".col-sm-5").css("min-height", "0");
                if ($('.card').is(':visible').get(0)) {
                    $('.null-data').show(function () {
                        $(this).effect("shake");
                    });
                }
                if (!$('.clearfix').is(':visible').get(0)) {
                    $('.null-data').show(function () {
                        $(this).effect("shake");
                    });
                }
            } else {
                $(".clearfix.alt").show();
                $(".card").show();
                $('.null-data').show(function () {
                    $(this).effect("shake");
                });
            }

        });


    });

HTML

<div class="container">
    <div class="row">
        <div class="col-xs-12 col-md-12">

            <div class="searcher-section" style="display: none">
                <div class="show-hide-searcher">
                    <div class="input-section">

                        <div class="label-input-searcher">
                            <label for="" class="searcher-label" id="label-searchbar"></label>
                            <input type="text" placeholder=""
                                   class="searcher-input form-control" id="input-searchbar"/>
                            <div class="null-data" style="display: none;">Wprowadź poprawne dane</div>

                        </div>

                    </div>

                </div>
            </div>
        </div>
        <div class="show-hide-section">
            <button class="btn btn-success show-hide-search-bar" id="searchbar-button">Pokaż wyszukiwarkę</button>
        </div>
    </div>
</div>

<div class="container">
    <div class="row">
        <h3 class="title" id="agents">Doradcy</h3>

        <div class="cards">
            @foreach($agents as $agent)
                <div class="col-xs-12 col-sm-5 col-md-4">

                    <div class="card" data-agent="{{$agent->firstname}} {{$agent->lastname}} {{$agent->email}}">
                        <figure>
                            <div class="img-ref">
                                <a href=""
                                   class="">
                                    @if(isset($agent->has_avatar) && $agent->has_avatar !== 0)
                                    <div style="background: url(''); background-size: cover;" class="photo"></div>
                                    @else
                                        <div style="background: url(''); background-size: cover;"
                                             class="photo"></div>
                                    @endif
                                </a>
                            </div>
                            <ul>
                                <li>
                                    <a href=""
                                       class="teamLink agent-color">
                                        <h3 class="agent-name">{{$agent->firstname}} {{$agent->lastname}}</h3>                                    </a>
                                </li>
                            </ul>
                            @if(isset($agent->company_name))
                            <div class="teams-summary">
                                {{$agent->company_name}}
                            </div>
                            @endif
                            <div class="contact-position">
                                {{--telefon kontaktowy--}}
                                <div class="mobile-info card-contact-info">
                                    {{$agent->phone}}
                                </div>
                                {{--adres mailowy--}}
                                <div class="email-info card-contact-info">
                                    {{$agent->email}}
                                </div>
                            </div>
                        </figure>
                    </div>
                </div>
            @endforeach
        </div>
        {{----}}
    </div>
</div>

最佳答案

检查元素长度

........
$(".clearfix.alt").hide();

if($(".card[data-agent*='" + trimmedInput + "' i]").length == 0) {
  alert("no result");
  return;
}

$(".card[data-agent*='" + trimmedInput + "' i]").show();
....

关于javascript - 没有匹配的 jQuery 时搜索栏发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45189814/

相关文章:

javascript - HTML:<link> 标签不应多次获取同一个文件

php - 加载 AJAX 页面后调用 Javascript 函数

php - php 表单中的提交按钮也可以作为 anchor 吗?

javascript - 将动态创建的元素的值存储到数据库 PHP MySql

javascript - jQuery 垂直居中文本仅在页面调整大小后加载

javascript - 无法访问 VideoJS 的 player.currentTime()

php - 限制所有 MySQL 查询的结果

php - 如何从 php webservice 获取许多 vars 到 iPhone 应用程序?

javascript - 使用 css 剪辑路径在多边形形状上进行 jQuery 拖放

Javascript 闭包 - 绑定(bind)值而不是引用