2012-05-08 98 views
52

我有這種形式,並試圖從文本區域獲取價值。由於某種原因,它不想。如何獲得jquery中textarea的值?

<form action="/profile/index/sendmessage" method="post" enctype="application/x-www-form-urlencoded"> 
    <div class="upload_form"> 
     <dt id="message-label"><label class="optional" for="message">Enter Message</label></dt> 
     <dd id="message-element"> 
     <textarea cols="60" rows="5" id="message" name="message"></textarea></dd> 
     <dt id="id-label">&nbsp;</dt> 
     <dd id="id-element"> 
     <input type="hidden" id="id" value="145198" name="id"></dd> 
     <dt id="send_message-label">&nbsp;</dt> 
     <dd id="send_message-element"> 
     <input type="submit" class="sendamessage" value="Send" id="send_message" name="send_message"></dd> 
    </div> 
</form> 


$("input.sendamessage").click(function(event) { 
    event.preventDefault(); 

    var message = $('textarea#message').html(); 
    var id  = $('input#id').val(); 

    console.log(message + '-' + id); 
}); 

jsfiddle

什麼想法?文字區域

回答

97

值也採取val方法:

var message = $('textarea#message').val(); 
19

您需要使用.val()爲textarea的,因爲它是一個元素,而不是包裝。嘗試

$('textarea#message').val() 

Updated fiddle

15

你應該使用val()代替html()

var message = $('#message').val(); 
2

您應該檢查你使用VAL()之前,否則,你將得到未定義的錯誤textarea的爲空。

if ($('textarea#message') != undefined) { 
    var message = $('textarea#message').val(); 
} 

然後,你可以做任何消息。

1

$('textarea#message')不能被定義(如果通過$你的意思是jQuery當然)。

$('textarea#message')可以是長度爲0,然後$('textarea#message').val()將是空的這一切

0

所有值總是與.VAL取();

看到代碼戰時

var message = $('#message').val(); 
4

你並不需要使用textarea#message

var message = $('textarea#message').val(); 

您可以直接使用

var message = $('#message').val(); 
3

在javascript:

document.getElementById("message").value 
0

您也可以通過名稱值,而不是ID是這樣的:

var message = $('textarea:input[name=message]').val(); 
0

使用.html()你不需要。你應該去.val()

.val()該文檔:

.val()的方法主要用於獲得形式元素如inputselecttextarea的值。在空集合上調用時,它將返回undefined

var message = $('#message').val();