2013-04-09 96 views
0

我正在研究在平板電腦上使用的概念,其中用戶可以通過一系列快捷按鈕將文本輸入到textarea中。當然,快捷按鈕並沒有涵蓋所有的可能性,所以我想保留在文本框中正常輸入文本的功能。使用按鈕和輸入的文本填充textarea

我遇到的問題是,在用戶將焦點應用到textarea並進行純文本編輯後,該按鈕不再有任何效果。

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#keypad button").click(function() { 
     var txt = $(this).val(); 
     $("#Textarea").append(txt); 
     }); 
}); 

<div id="keypad"> 
<div id="row4"> 
    <button type="button" class="green45" name="Rt" value="Rt ">Rt</button> 
    <button type="button" class="green45" name="Lt" value="Lt ">Lt</button> 
    <button type="button" class="green45" name="Up" value="Up ">Up</button> 
    <button type="button" class="green45" name="Down" value="Down ">Down</button> 
    <button type="button" class="green45" name="Forward" value="Forward ">Forward</button> 
    <button type="button" class="green45" name="Back" value="Back ">Back</button> 
</div> 

我創造了這個小提琴說明問題http://jsfiddle.net/J228n/2/。首先使用按鈕輸入一些文本,然後正常輸入一些文本,然後再次嘗試使用按鈕。

回答

2
$("#keypad button").click(function() { 
    var txt = $(this).val(); 
    $('#Textarea').val(function(i,val){ 
     return val + txt; 
    }); 
}); 

jsFiddle

您需要使用.val()功能,並返回舊值+從按鈕上的文本。

+0

Simples!感謝所有的答案。 – Barbs 2013-04-09 03:30:40

1

試試這個:

$("#keypad button").click(function() { 
     var txt = $(this).val(); 
     var old =$("#Textarea").val();  
     $("#Textarea").val(old+txt); 
}); 
1

這工作得很好:

$("#keypad button").click(function() { 
     var txt = $(this).val(); 
     $("#Textarea").val($("#Textarea").val()+txt); 
});