J'ai un menu déroulant qui contient contacts, c'est-à-dire John, Bob, etc. et un bouton à côté de celui-ci qui affiche le numéro de téléphone du contact dans mon { {X3}}.

Chaque fois que je choisis un contact et que j'appuie sur le bouton, je veux afficher le numéro dans ma zone de texte et le numéro de chaque contact supplémentaire que j'ajoute, je veux que le numéro s'affiche sous le numéro précédent. Donc, fondamentalement, j'ai besoin d'un saut de ligne entre chaque numéro comme celui-ci.

1234567890

5557778888

Lorsque j'utilise ma première fonction en utilisant .append, cela fonctionne comme je le souhaite. Cependant, si je modifie les nombres ou en retire des nombres, je ne peux plus utiliser mon bouton pour ajouter des nombres à la zone de texte. J'ai réalisé à partir de cet article SO que c'est parce que les nœuds de texte et la valeur peuvent être déconnectés.

Ensuite, j'ai essayé d'utiliser .val, mais cela remplace simplement les nombres dans ma zone de texte au lieu d'ajouter en dessous.

Quelle serait la meilleure façon de résoudre ce problème? Merci!

Faites-moi savoir si vous avez besoin d'informations supplémentaires.

Mes fonctions javascript:

Utilisation de .append()

    selectOption: function() {

        $('#addContact').click(function() {
            $('#toPhoneNumber').append($('#toAdd option:selected').data('number') + '
');

        });

    },

Utilisation de .val()

    selectOption: function() {

        $('#addContact').click(function() {
            $('#toPhoneNumber').val($('#toAdd option:selected').data('number') + '\n');

        });

    },
0
user3128376 21 juil. 2015 à 22:38

2 réponses

Meilleure réponse
var nums =[];
.
.
selectOption: function() {
  $('#addContact').click(function() {
    var num =$('#toAdd option:selected').data('number'); 
    if (nums.indexOf(num)==-1) nums.push(num);
    $('#toPhoneNumber').val(nums.join( '\n'));
  });
},
1
mplungjan 21 juil. 2015 à 20:05

Avec val, vous pouvez essayer:

selectOption: function() {
        var temp = $('#toPhoneNumber').val();
        $('#addContact').click(function() {
            $('#toPhoneNumber').val(temp + $('#toAdd option:selected').data('number') + '\n');

        });

    },
0
IWillScoop 21 juil. 2015 à 19:50