2014-04-27 25 views
0

我想寫前添加一個文本輸入的內容,一個textarea實時預謀輸入值textarea的jQuery中

下面的腳本是我目前有:

<textarea rows="4" id="tweet-text" name="tweet-text"></textarea> 
<input id="prepend" name="prepend" type="text"> 

的jQuery :

function appendTweet() 
{ 
    var tweet = $("#tweet-text").val(); 
    $('#prepend').bind('keyup keypress', function() { 
     $('#tweet-text')[0].value = tweet + $(this)[0].value; 
    }); 
} 

jQuery(document).ready(function($) 
{ 
    appendTweet(); 
    $('#prepend').keyup(appendTweet); 
}); 

目前我輸入的是以前的字符串加上新的,所以如果我打個招呼我會得到

^h

HHE

hehel

helhell

hellhello

我能看到爲什麼發生這種情況,但我不能找到解決方案。

編輯

爲了澄清,我正在尋找以下結果:

  1. 我鍵入 '測試' 爲#prepend#tweet-text現在說'測試'。
  2. 我輸入'test2'到#tweet-text.#tweet-text`現在說'test test2'。
  3. 我修改#prepend,以便它現在說'test3'。 #tweet-text現在說'test3 test2'。
+0

請在你想達到什麼更具體的:允許用戶輸入文本到文本區域?如果是這樣,你希望文本區域中的文本被保留,而文本框中的文本是前置的,對吧? – Paolo

+0

@Paolo不,我希望它被替換。看我的編輯。 – Sebastian

+0

在第2點,您正在輸入文字區域。在第3點,您將保留輸入到文本區域「test2」中的內容。沒有取代它。 – Paolo

回答

0

試試這個:

jQuery(document).ready(function($) { 
    $('#prepend').onkeydown(function() { 
    var tweet = $("#tweet-text").val(); 
    $('#prepend').val(tweet); 
}); 
}); 
0

這樣做:

function appendTweet() 
{ 
    var tweet = $("#prepend").val(); 
    $('#tweet-text').val(function(index, old) { return tweet + old; }); 

} 

這將預先準備的文本區域文本框中的文本。

Here is Fiddle DEMO

+0

哪一部分預先輸入框中的內容? – Sebastian

+0

tweet-text的val函數 –

+0

我還添加了演示鏈接。 –