2012-03-24 23 views
0

jqueryを使用してテキストを入力フィールドに入力するには?Link-jQueryをクリックして入力フィールドを入力してください

テキストは動的に生成されるため、値は事前にわかっていません。と例えば

:私は

<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> 

この

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

と試みるが、これは、入力フィールドに1つのタグだけを置く、私はこの

のようなものを置く必要があります
<input id="tag" type="text" name="tags" value="aaa, bbb, ccc, eee"> 

ここに実例があります http://jsfiddle.net/Kaf3V/4/

答えて

0

あなたは既に追加されたリンクを削除できるように、選択されたリンクを追跡するためにcssクラスを使用することができます。

$('a.tag').live('click', function(e){ 

    // toggle selected class 
    $(this).toggleClass('selected'); 

    // make a collection of tags 
    var newTag = []; 
    $('a.tag.selected').each(function(){ 

     // add value; 
     newTag.push($(this).text()); 
    }); 
    $('#tag').val(newTag.join(', ')); 

    return false; 
}); 

デモについては、jsFiddleを参照してください。

注:これは、重複している場合、またはリンクがクリックされた順序が重要でない場合にのみ機能します。

+0

こんにちはGoran、これはちょうど私が必要なものですが、すでに入力されたタグにいくつかのタグがある場合はどうなりますか?例http://jsfiddle.net/Kaf3V/8/、新しいものをクリックすると、入力された古いタグが削除されますか?私はちょうど新しいものでいっぱいにする必要があります... –

+0

HTMLマークアップ内のリンクに 'selected'クラスを追加することは問題ありません。ように - http://jsfiddle.net/GoranMottram/Kaf3V/9/ –

0

現在の値をとり、新しい値:$('#tag').val($('#tag').val() + this.innerHTML);を追加すると、データ配列を使用したり、要素に.data()を追加して同じ値を複数回追加しないようにすることができます。

関連する問題