2012-04-22 51 views
0

好吧。所以我有這個代碼從輸入文本框中獲取一個值

<input id="suspect" value="" type="text"> 
<input id="reason" value="" type="text"> 
<textarea></textarea> 
var suspect = $('input#suspect').text(); 
var reason = $('input#reason').text(); 
$('textarea').val('' + suspect + ' and ' + reason + '') 

然後我把這東西放在這兩個輸入,然後textarea從輸入沒有收到任何值。如何解決這個問題?

回答

2

因爲當您設置變量時,在您嘗試恢復輸入文本的元素內沒有文本(順便說一句,對於您要查找的輸入.val())。如果您綁定到focus事件:

$('textarea').focus(
    function(){ 
     var suspect = $('#suspect').val(), 
      reason = $('#reason').val(); 
     $(this).val('' + suspect + ' and ' + reason + ''); 
    }); 

JS Fiddle demo

而且,在這種情況下(因爲你已經放置的JavaScript 的DOM元素,儘管你已經省略了<script></script>標籤),你可能是正確的沒有使用$(document).ready()事件處理程序,但我通常建議在這樣的包裝jQuery,只是爲了確保事件綁定其中他們正在綁定存在DOM中。

參考文獻:

+0

這就是我要找的,謝謝。 – 2012-04-22 17:07:29

+0

太棒了;你非常歡迎,我很高興能得到幫助! =) – 2012-04-22 17:08:00

0

你可能想在這裏使用val()代替text()獲得價值,而且也需要某種事件(如點擊)的使數據被從輸入中提取並放入textarea。

它也可能是值得指出的是,因爲ID是唯一的,

var suspect = $('#suspect').val(); 
var reason = $('#reason').val(); 

足夠的選擇和(我認爲)更容易閱讀。

1
  • .text() - 獲取元素中的文本
  • .val() - 獲取元素的

由於文本存儲在裏面value,因此你應該使用.val()而不是.text()

var suspect = $('input#suspect').val(), 
    reason = $('input#reason').val(); 
$("textarea").val(suspect+" and "+reason); 
1

如果你想瞬間變試試鍵盤事件

$(window).keyup(function() { 
var suspect = $('input#suspect').val(); 
var reason = $('input#reason').val(); 
$('textarea').val('' + suspect + ' and ' + reason + ''); 
}); 

在這裏看到:http://jsfiddle.net/TtAVS/