2014-04-28 47 views
0

这可能是个虚拟问题,但我找不到解决方案。使用文本超链接将文本添加到输入字段

我们有一段代码:

<script type="text/javascript"> 
     $(function() { 
      $('.tags_select a').click(function() { 
       var value = $(this).text(); 
       var input = $('#text_tag_input'); 
       input.val(input.val() + value + ', '); 
       return false; 
      }); 
     }); 
</script> 

和HTML:

<input id="text_tag_input" type="text" name="tags" /> 

<div class="tags_select"> 
<a href="#">text1</a> 
<a href="#">text2</a> 
<a href="#">text3</a> 
</div> 

的问题如下 - 当我点击链接的text1,然后文本2等一切都显得输入。我想要实现的是只显示一个变量(在这种情况下,最新的,最后一个变量)。

谢谢!

+0

这很简单...在每次点击时清除输入:)如果你仍然想保留你的代码,在添加值之前,就像input.val('')一样;} – radubogdan

+0

'input.val(input。 val()+ value +',');'逐字地说“将输入的值设置为当前输入值,再加上被点击的值。”它正在做你告诉它的事情。 –

+1

或简单地'input.val(value)' – Sanketh

回答

1

这应该工作,你

<script type="text/javascript"> 
    $(function() { 
     $('.tags_select a').click(function() { 
      $('#text_tag_input').val(""); 
      var value = $(this).text(); 
      var input = $('#text_tag_input').val(value); 
      return false; 
     }); 
    }); 
</script> 

<input id="text_tag_input" type="text" name="tags" /> 
<div class="tags_select"> 
    <a href="#">text1</a> 
    <a href="#">text2</a> 
    <a href="#">text3</a> 
</div> 
1

用途:用于

input.val(value); 

代替:

input.val(input.val() + value + ', '); 
1
input.val(input.val() + value + ', ') 

什么,做设为您的输入=的值(输入的当前值+点击值+',')

input.val(value) 

上面的代码只是将输入值设置为点击值。


不过,如果你不想在你的代码删除任何东西,你可以添加

input.val('')你打电话之前input.val(input.val() + value + ', ')