2017-08-19 4 views
0

Ceci est une fonction ajax, je veux quand les données sont null ou undefined que la sortie (#access element) affichez-moi la valeur vide "" (ou n'enregistrez aucune données en sortie lorsque est nulle ou non trouvé)Vérifier si les données de réponse AJAX sont vides ou nulles dans la sortie

$(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

'if (data) {//}' faire des trucs –

+0

vous pouvez vérifier avec si (data.Length> 0) .... – Ajay2707

+0

Merci pour la réponse, encore ses dernières données en montraient keyup, i veulent effacer dernières données – ARROW

Répondre

0

Il suffit d'ajouter une condition pour vérifier si des données sont présentes ou non comme

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

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

je vous remercie pour reply.its montré dernières données par le keyup encore – ARROW

+0

c'est 'si' pas' If' –

+0

Merci paul .. erreur typo. –

0

Je suggère d'ajouter une fonction générique simple pour vérifier le vide/non définie comme cela sera utile pour d'autres parties de votre projet aussi. La fonction générique se présente comme suit: -

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 
       } 
      } 

actualiser votre succès comme suit: -

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 
    } 

J'espère que cela résout l'obstacle

+0

Salut merci de m'aider – ARROW

+0

S'il vous plaît voter en cliquant sur la flèche vers le haut et cliquez sur la flèche si vous avez trouvé ma réponse utile. –

0

Merci pour tous commentaires et réponses je en savoir plus choses de l'autre réponse :) j'ai ajouté la ligne $ ("# access"). val ("") et le problème corrigé.

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

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

     }