2010-11-21 4 views
1

J'ai presque obtenu ce que je veux maintenant. (Collé à partir du code partout sur Internet.)Arrêtez Jquery de remplacer le champ

Mais j'ai besoin de savoir comment garder ma requête d'être écrasée.

Exemple J'ai un champ de texte. Lorsqu'un mot dans la liste déroulante est sélectionné, il place le texte dans le champ de formulaire. Si je choisis un autre mot, il remplace ce mot. Ce que je veux faire, c'est pouvoir sélectionner autant que je veux et peu importe le nombre de mots que je touche, je les garde sauf si je monte et recule ou les supprime du champ de formulaire.

Voici mon code.

http://pastebin.com/1wnAZMNM

Répondre

0

Une façon est d'ajouter le nouveau texte au contrôle d'entrée au lieu de remplacer son contenu, en insérant éventuellement un espace entre-deux:

$(".myselect").change(function() { 
    $(".textbox").val($(".textbox").val() + ' ' + $(this).val()); 
}); 
+0

Impressionnant! Merci beaucoup. Y at-il une raison pour laquelle cela a fonctionné? Je voudrais savoir pourquoi cela a fonctionné et rien d'autre ne semblait aussi. (Vous avez sauvé ma santé mentale!) –

+0

Peut-être que vous êtes confus parce que la méthode ['.val()'] (http://api.jquery.com/val/) * renvoie * la valeur de la boîte de texte lorsqu'elle est appelée * sans * paramètres, mais * définit * la valeur de la zone de texte lorsqu'elle est appelée * avec * un paramètre. Dans mon exemple, j'ai d'abord appelé '.val()' pour obtenir la valeur actuelle de la zone de texte, puis ajouté un espace, puis ajouté la valeur sélectionnée de la liste déroulante et enfin * passé * la chaîne résultante à '. val() 'pour * mettre à jour * la valeur de la zone de texte. –

+0

C'était confus. Mais tout fonctionne à merveille maintenant. J'y allais 100x faux pendant presque 2 jours, mais je dois vraiment vous remercier pour toute votre aide. Je ne sous-estimerai jamais js encore. :) Il m'a sauvé les fesses. –

Questions connexes