检查AJAX响应数据是否为空或空比不显示在输出

问题描述:

这是ajax函数,我想要当数据是nullundefined比输出(#access element)显示为空“”(或不保存任何在输出数据时为空或找不到)检查AJAX响应数据是否为空或空比不显示在输出

$(function(){ 

    $('#userId').on('keyup', function() { 
     var value=$(this).val(); 
     $.ajax('/projectname/admin/getUserAccess/' + value, 
     { 
      dataType: 'JSON', 
      success: function(data){ 

       var str = data.access.replaceAll(/\|/g, ','); 
       var result = str.substring(1, str.length - 1); 

       $("#access").val(result); 

      } 
     }); 
    }); 
    }); 
+0

'如果(数据){//做的东西}' –

+0

你可以用IF(data.length> 0).... – Ajay2707

+0

通过KEYUP谢谢你的答复,其显示最后的数据还没有签,我想清除最后的数据 – ARROW

只需添加一个条件来检查,如果数据存在或不作为

If(data) { 
    var str = data.access.replaceAll(/\|/g, ','); 
    var result = str.substring(1, str.length - 1); 

    $("#access").val(result); 
} 
+0

谢谢reply.its显示的最后一个数据通过keyup但 – ARROW

+0

这是'如果不'如果' –

+0

谢谢保罗..错别字错误。 –

我建议增加一个简单的泛型函数来检查空/未定义因为这对您的项目的其他部分也很方便。通用功能是这样的: -

function isEmpty(value) {//Function to check if value is Empty or Null 
       switch (typeof(value)) { 
       case "string": return (value.length === 0); 
       case "number": 
       case "boolean": return false; 
       case "undefined": return true; 
       case "object": return !value ? true : false; // handling for null. 
       default: return !value ? true : false 
       } 
      } 

如下然后更新您的成功: -

success: function(data){ 
    if(isEmpty(data)){ 
     $("#access").html(data); //Notice it is Html and not val as you want data displayed 
    }else { 
     window.alert('Nothing Returned');//If at all you want an Alert 
     $("#access").html('');//Sets the $("#access") with nothing to display 
    } 

我希望这可以解决的障碍

+0

嗨,谢谢你的帮助 – ARROW

+0

请点击上箭头和检查箭头,如果你发现我的答案有帮助,请投票。 –

谢谢所有评论和答案我了解更多其他答案的东西:) 我增加了行$(“#access”).val(“”)并修正了问题。

 success: function(data){ 
      $("#access").val(""); 
      var str = data.access.replaceAll(/\|/g, ','); 
      var result = str.substring(1, str.length - 1); 

      $("#access").val(result); 

     }