加载不会出现在ajax发布请求上

时间:2016-08-29 09:45:50

标签: javascript jquery ajax autocomplete

我在自动填充输入字段中使用下面的jQuery。

现在,我希望在ajax等待来自服务器的响应时显示一个微调器。

我正在使用search:来显示加载div。然后open:隐藏它。最后成功显示结果。

 $(document).ready(function(){  
      $('#search_field').keyup(function(){  
           var search = $(this).val();  
           if(search != '')  
           {  
                $.ajax({

                     url: 'search.php',  
                     method: 'POST',  
                     data: {search:search},  

                     search: function()
                     {
                         $('#search_loader').fadeIn('fast', 'swing');
                     },

                     open: function()
                     {
                         $('#search_loader').fadeOut('fast', 'swing');
                     },

                     success: function(data)  
                     {     
                         if(data == '') {
                             $('#autocomplete_result').fadeOut('fast', 'swing');
                         } else {
                             $('#autocomplete_result').fadeIn('fast', 'swing'); 
                             $('#autocomplete_result').html(data); 
                         }
                     }


                });  
           }  
      });  


 }); 

search:open:都不起作用。

新的JS,所以有谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:1)

检查http://api.jquery.com/jquery.ajax/。没有开放和搜索选项。尝试使用beforeSend和complete,同时将fadeIn fadeOut设置为“slow”

$(document).ready(function(){  
      $('#search_field').keyup(function(){  
           var search = $(this).val();  
           if(search != '')  
           {  
                $.ajax({    
                     url: 'search.php',  
                     method: 'POST',  
                     data: {search:search},    
                     beforeSend : function()
                     {
                         $('#search_loader').fadeIn('slow', 'swing');
                     },   
                     complete : function()
                     {
                         $('#search_loader').fadeOut('slow', 'swing');
                     },

                     success: function(data)  
                     {     
                         if(data == '') {
                             $('#autocomplete_result').fadeOut('fast', 'swing');
                         } else {
                             $('#autocomplete_result').fadeIn('fast', 'swing'); 
                             $('#autocomplete_result').html(data); 
                         }
                     }
                });  
           }  
      });  
 }); 

答案 1 :(得分:0)

Ajax具有以下语法:

$.ajax({
    url: 'your_url',
    method: 'get', // or post
    data: {
        var1 : val1,
        var2 : val2
    },
    before:  function(){

    },
    onComplete: function(){

    },
    success : function(response){

    }
});

没有搜索:定义了function()。如果需要,您可以打电话给他们 之前的() 要么 的的onComplete()