首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery进行实时搜索?

使用jquery进行实时搜索?
EN

Stack Overflow用户
提问于 2017-05-04 16:18:13
回答 1查看 11.6K关注 0票数 1

如何使用Jquery创建实时搜索,我使用keypress或keyup事件来循环查询,但是如果我键入3个字符或更多字符,AJAX将执行3次或更多次。

My form:

代码语言:javascript
复制
<input class="keyword-search" type="text" name="s" autocomplete="off" placeholder="Where do you want to go?">

这里我的AJAX:

代码语言:javascript
复制
<script>
  jQuery(document).ready(function(){
            (function($){
                $(".keyword-search").keypress(function(){
                    var keyword = $(this).val(); 
                     $(".search-appear").empty();
                    $.ajax({
                        type: "post",
                        url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
                        data: { action: 'get_tour', keyword: keyword },
                        beforeSend: function() {$("#loading").fadeIn('slow');},
                        success: function(data) {
                            $("#loading").fadeOut('slow');
                            $(".search-appear").append(data);
                             }
                    });
                });
            })(jQuery);
        });
</script>   

--这是我的演示函数:

代码语言:javascript
复制
function get_tour()
            echo 'Do something!';
       ?>
      <?php  die(); }

这是当我键入3个字符时的结果:第3类字符,我键入2字符:第2类字符,谁可以帮助我工作1次,无论多少键按。否则就没问题了!非常感谢!!

EN

回答 1

Stack Overflow用户

发布于 2017-05-04 16:26:18

将ajax添加到ajaxFunction中,如果值大于3,则当用户键入或粘贴内容到搜索中时,这将有效。

ajaxFunction将会是这样的:

代码语言:javascript
复制
var ajaxFunction = function( data ) {
    $.ajax({
        type: "post",
        url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
        data: { action: 'get_tour', keyword: data },
        beforeSend: function() {$("#loading").fadeIn('slow');},
        success: function(data) {
            $("#loading").fadeOut('slow');
            $(".search-appear").append(data);
        }
    });
  }
}

代码语言:javascript
复制
$(document).ready(function(){
  
  var ajaxFunction = function( val ){
    $('#out').text('Val: ' + val);
  }
  
  $('#search').on('keyup paste',function(){
    if(this.value.length >= 3)
      ajaxFunction(this.value);
  });

});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="search">
<div id="out"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43788120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档