2012-03-24 17 views
0

Wie könnte jemand ein Eingabefeld mit etwas Text mit jquery ausfüllen, indem Sie auf diesen Text klicken?Füllen Sie Eingabefeld durch Klicken auf Link - jQuery

Der Text wird dynamisch generiert, so dass der Wert nicht vor der Zeit bekannt ist.

Zum Beispiel mit:

<input id="tag" type="text" name="tags" value=""> 

<p> 
    <a class="tag">aaa</a><br/> 
    <a class="tag">bbb</a><br/> 
    <a class="tag">ccc</a><br/> 
    <a class="tag">ddd</a><br/> 
    <a class="tag">eee</a> 
</p> 

Ich bin mit diesem versuchen

$('a.tag').live('click', function(e){ 
    $('#tag').val(this.innerHTML); 
    return false; 
}); 

aber dies wird nur ein Tag in das Eingabefeld setzen, ich brauche so etwas wie dieses

setzen
<input id="tag" type="text" name="tags" value="aaa, bbb, ccc, eee"> 

Hier ist Arbeitsbeispiel http://jsfiddle.net/Kaf3V/4/

Antwort

0

Sie können eine CSS-Klasse verwenden, um ausgewählte Links zu verfolgen, sodass Sie bereits hinzugefügte Links entfernen können.

Eine Demo finden Sie unter jsFiddle.

Hinweis: Dies funktioniert nur, wenn Duplikate oder die Reihenfolge, in der die Links angeklickt werden, nicht wichtig sind.

+0

Hallo Goran, das ist genau das, was ich brauche, aber was ist, wenn ich bereits einige Tags im Eingabefeld habe? Beispiel http://jsfiddle.net/Kaf3V/8/, wenn ich also auf ein neues klicke, werden alte Tags aus dem Eingabefeld gelöscht? Ich muss nur mit neuen füllen ... –

+0

Kein Problem, wäre es machbar, die "ausgewählte" Klasse zu den Links im HTML-Markup hinzuzufügen, wenn sie generiert werden. Wie so - http://jsfiddle.net/GoranMottram/Kaf3V/9/ –

0

nehmen Sie den aktuellen Wert und fügen Sie das neue: $('#tag').val($('#tag').val() + this.innerHTML); hinzu, um ein Datenarray zu verwenden oder sogar .data() zum Element hinzuzufügen, um zu verhindern, dass derselbe Wert mehrmals hinzugefügt wird.

Verwandte Themen