2013-08-29 26 views
1

在這裏有幾個「jQuery獲取元素值」的問題,但我無法找到一個幫助我的情況。請在標記爲重複之前閱讀,儘管我非常樂意指出另一個成功回答我的問題的問題。獲取<textarea>價值與jQuery不按預期工作

我有以下<textarea>

<textarea id="comment_text" class="comment" onblur="if(this.value == '') { this.value = 'Comment...'; nocomLeft() }" onfocus="if(this.value == 'Comment...') { this.value = ''; comLeft() }">Comment...</textarea> 

這增加了佔位符文本,刪除它時,它具有焦點,並將其添加再次備份如果輸入什麼。

現在在不同的點,就像當我點擊一個按鈕,我做的:

var comment = $('#comment_text').text(); 

這無論什麼返回值Comment...即使我在文本區域中鍵入,點擊別處刪除重點,並可以清楚地看到我的新文字仍然在文本區域 - $('#comment_text').text()' always comes back評論...'

我很難過,所有幫助表示讚賞。

感謝

+0

看到http://jsfiddle.net/arunpjohny/auGpN/2/ –

回答

5

使用.val()

$('#comment_text').val(); 

此外,節省一些JS,並使用placeholder屬性。

+0

同樣的事情發生... – superphonic

+0

劃痕......我在撒謊,使用.val確實有效。我會在這裏留下這個問題來提醒我的愚蠢。 – superphonic

+2

爲了澄清這個答案,「The .text()方法不能用於表單輸入或腳本。要設置或獲取input或textarea元素的文本值,請使用.val()方法。」 http://api.jquery.com/text/ – showdev

0

.val()將是正確的調用方法。所以,在你的榜樣,這將是
var comment = $('#comment_text').val();

請注意,你甚至可以做這樣的事情
var comment = $('#comment_text').val('this is a test');

0

設置textarea的文本嘗試使用.val()方法

$('#comment_text').val();