J'ai des éléments de formulaire dynamiques et j'essaie d'ajouter des valeurs à l'attribut value de l'entrée qui provient d'un tableau. Cependant, parfois, il n'y a pas de données, puis javascript imprime undefined dans la zone de valeur de l'élément d'entrée.

Comment puis-je le vérifier et ne pas imprimer undefined dans un élément dynamique?

$("#test").append("<input type='text' name='first-test' class='form-control' value='"+testarray['first-test']+"' >

Lorsque nous vérifions la zone de texte, elle affiche " non défini " comme valeur.

0
user6618536 2 avril 2017 à 22:23

2 réponses

Meilleure réponse

Je pense que cela fonctionnera

$("#test").append("<input type='text' name='first-test' class='form-control' value='"+(testarray['first-test']===undefined ? "Insert here what ever you want when it is empty.":testarray['first-test'])+"'>");  

https://jsfiddle.net/b51gq0mq/2/

2
Konstantinos 2 avril 2017 à 19:50

Voici un exemple de travail, nous passons un tableau avec des objets dans notre fonction. La boucle For saute simplement si la valeur n'est pas trouvée.

var yourArray = [
  { name: 'Janet' },
  { name: 'Jane', value: 1 },
  { name: 'Tom', value: 2 },
  { name: 'Kate', value: 3},
  { name: 'Mark' },
  { name: 'Tom' }
];

function addInputs(array) {
  for (i = 0; i < array.length; i++) {
    var element = array[i];
    
    // Skips if no value found
    if (element.value === undefined) {
      continue;
    }   
    
    var html = '<input type="text" name="' + element.name + '" class="form-control" value="' + element.value + '" />';
    

    
    $('#test').append(html);
  }
};

addInputs(yourArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>




<div id="test"></div>
0
loelsonk 2 avril 2017 à 20:04