如何使用$ .getJSON在自动完成中查找“未找到结果”

问题描述:

我想在响应为空时显示“未找到结果”消息。在某些情况下,当后端会话过期时,它将返回登录页面,但是我需要json数据,所以如何处理这个html数据。

$("#customers_name") 
    .bind("keydown", function(event) { 
    if (event.keyCode === $.ui.keyCode.TAB && 
     $(this).autocomplete("instance").menu.active) { 
     event.preventDefault(); 
    } 
    }) 
    .autocomplete({ 
    source: function(request, response) { 
     $.getJSON("ajax_functions.php", { 
     term: extractLast(request.term), 
     console: $('select[name="console"] option:selected').val(), 
     call: 'getCustomersEmailList', 
     nmsAdmin: '<?php echo tep_session_id();?>' 
     }, response); 
    }, 
    change: function (event, ui) { 
     if(!ui.item){ 
      $("#customers_name").val(""); 
     } 
    }, 
    focus: function() { 

     return false; 
    }, 
    select: function(event, ui) { 
     var customer_id = ui.item.customer_id; 
     var customer_email = ui.item.customerEmail; 
     console.log(ui); 
     $('#customer_id').val(customer_id); 
     $('#customer_email').val(customer_email); 
     var terms = split(this.value); 

     terms.pop(); 

     terms.push(ui.item.value); 

     terms.push(""); 
     this.value = terms.join(""); 
     return false; 
    } 
}); 
+0

您的意思是? http://*.com/a/4719848/961526 –

+0

@RaphaëlAlthaus:是这样做1问题,但当回应当时返回的HTML数据我应该怎么做... – codever

+0

你可以管理这更全球性:例如http ://*.com/questions/12703942/handling-session-time-out-when-ajax-call-to-c-sharp-mvc-controller-not-working或http://*.com/questions/5238854 /处理会话超时功能于阿贾克斯通话 –

我编辑了你的代码,对我来说工作正常。你可以请检查下面的代码。

$("#customers_name") 
    .bind("keydown", function(event) { 
    if (event.keyCode === $.ui.keyCode.TAB && 
     $(this).autocomplete("instance").menu.active) { 
     event.preventDefault(); 
    } 
    }) 
    .autocomplete({ 
    source: function(request, response) { 
     $.getJSON("ajax_functions.php", { 
     term: extractLast(request.term), 
     console: $('select[name="console"] option:selected').val(), 
     call: 'getCustomersEmailList', 
     nmsAdmin: '<?php echo tep_session_id();?>', 
     dataType:'json', 
     },response).fail(function(jqXHR, status, error){ document.location.href='login.php'; }); 
    }, 
    response: function(event, ui) { 
     console.log(ui.content); 
     if (ui.content.length === 0) { 
      alert("No results found"); 
     } 
    }, 
    change: function (event, ui) { 
     if(!ui.item){ 
      $("#customers_name").val(""); 
     } 
    }, 
    focus: function() { 

     return false; 
    }, 
    select: function(event, ui) { 
     var customer_id = ui.item.customer_id; 
     var customer_email = ui.item.customerEmail; 
     console.log(ui); 
     $('#customer_id').val(customer_id); 
     $('#customer_email').val(customer_email); 
     var terms = split(this.value); 

     terms.pop(); 

     terms.push(ui.item.value); 

     terms.push(""); 
     this.value = terms.join(""); 
     return false; 
    }, 
    error : function() { document.location.href='login.php';} 
});