2010-11-21 8 views
1

Ich hätte fast, was ich jetzt will. (Cobbled zusammen aus Code über das Internet.)Stop Jquery vom Ersetzen des Feldes

Aber ich muss wissen, wie ich meine Anfrage davon abhalten kann, überschrieben zu werden.

Beispiel Ich habe ein Textfeld. Wenn ein Wort in der Dropdown-Liste ausgewählt ist, wird der Text in das Formularfeld eingefügt. Wenn ich ein anderes Wort auswähle, ersetzt es dieses Wort. Ich möchte, dass ich so viel wählen kann, wie ich möchte, und egal, wie viele Wörter ich berühre, es behält sie, es sei denn, ich gehe nach oben und lösche sie aus dem Formularfeld.

Hier ist mein Code.

http://pastebin.com/1wnAZMNM

Antwort

0

Eine Möglichkeit ist es, den neuen Text in die Eingabesteuerung anstatt sie zu ersetzen sein Inhalt anzuhängen, möglicherweise ein Leerzeichen in-zwischen Einfügen:

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

Awesome! Ich danke dir sehr. Gibt es einen Grund dafür? Ich würde gerne wissen, warum das funktioniert und nichts anderes schien auch. (Sie haben meinen Verstand gerettet!) –

+0

Vielleicht sind Sie verwirrt, weil die Methode ['.val()'] (http://api.jquery.com/val/) * den Wert des Textfelds zurückgibt, wenn sie * ohne * Parameter, aber * setzt * den Wert des Textfelds beim Aufruf * mit * einem Parameter. In meinem Beispiel habe ich zuerst '.val()' aufgerufen, um den aktuellen Wert des Textfelds zu erhalten, dann ein Leerzeichen angehängt, dann den ausgewählten Wert der Dropdown-Liste angehängt und schließlich * die resultierende Zeichenfolge an 'übergeben. val() 'um * den Wert des Textfelds * zu aktualisieren. –

+0

Das war verwirrend. Aber jetzt funktioniert alles wunderbar. Ich habe es fast 2 Tage lang falsch gemacht, aber ich muss dir wirklich für deine Hilfe danken. Ich werde js nie wieder unterschätzen. :) Es hat meinen Hintern gerettet. –