2014-04-28 68 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 + ', ')