2012-03-24 86 views
0

用户可以通过单击该文本使用jquery填充某些文本的输入字段?通过单击链接填充输入字段 - 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; 
}); 

但这将只放一个标签在输入字段,我需要把这样的事情

<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

你好戈兰,这正是我需要的,但如果我已经在输入字段中有一些标签呢?示例http://jsfiddle.net/Kaf3V/8/,所以当我点击新的,从输入字段的旧标签将被删除?我只需要填写一个新的... – 2012-03-24 19:41:37

+0

没问题,将生成的HTML标记中的链接添加到“selected”类中是否可行?像这样 - http://jsfiddle.net/GoranMottram/Kaf3V/9/ – 2012-03-24 19:47:48

0

获取当前值并添加新的:$('#tag').val($('#tag').val() + this.innerHTML);您可能想要使用数据数组,或者甚至将元素添加到.data()以避免此操作多次添加相同的值。

相关问题