2012-08-02 92 views
5

我正在嘗試閱讀textarea的內容,但.val()不適用於我的textarea。 如果有人有我的解決方案,我會很高興。 這裏是我的代碼:JQuery:.val()不適用於textarea

HTML:

<textarea id="details" class="required" rows="5"></textarea> 

JS:

$.ajax({ 
     type: "GET", 
     url: "reserve.php", 
     data: { 
      details : $('#details').val(), 
      ... 
     }, 
     ... 
}); 

謝謝!

+0

也許你的頁面中有id =「details」的另一個元素? – Rodik 2012-08-02 10:28:51

+0

.val()正在textareas上工作,請檢查您的拼寫是否正確,並且最後一個參數 – Ziinloader 2012-08-02 10:29:48

+0

上沒有任何「,」.val()在返回textarea的實際值的意義上工作正常。定義「不工作」? – 2012-08-02 10:29:54

回答

5

val()工作得很好......你必須在別處有你的錯誤。

Example

可能是你的不匹配選擇。檢查錯別字,如果你採用了正確的前綴(#的ID或.類)

+0

最後沒有錯誤的答案! – 2012-08-02 10:31:59

+0

不工作意味着$('#details')。val()返回值'undefined' – Trinityx89x 2012-08-02 10:40:43

+1

@ user1571064然後您的選擇器不正確。 '$('#details')'返回一個空的jQuery集合,'.val()'因此會返回'undefined'。 – 2012-08-02 10:42:53

1

細節:encodeURIComponent方法($( '#細節')VAL())

5

這是一個有效的請求,如我曾經歷過這個確切同樣的問題,可以報告如下:

  • 沒有 - 它沒有選擇,則返回一個有效的對象
  • 沒有 - 只有一個與此ID
  • 元素無 - 有沒有無效的HTML或就我所看到的

是壞標籤的使用 - 有一個答案是不是黑客攻擊或惡意代碼:

$(「#myTextArea」)[0] .value的

2

我有同樣的問題。 在我的情況下,解決方案是,有兩個元素的ID「評論」。 jQuery返回第一個值的空值。 如果我查看源代碼,我只看到一個,因爲第二個是在AJAX調用之後添加的。 但是當在檢查員中搜索「評論」(包括引號)時,我看到了這兩個元素。 我希望這也能幫助你。

1

奇怪的是,我有一個類似的問題,試圖清空所有textareas。它不是一個選擇器問題,因爲我選擇$('textarea')頁面中的所有textareas。 我發現以下工作: $('textarea')。text('');所以你可以嘗試設置textarea: $('textarea')。text('my new value');

+0

這也適用於我... – Ananth 2016-07-08 08:39:15

+0

你的傳奇!謝謝 – James 2017-03-23 17:38:54

0

我的問題是我正在使用名稱選擇器而不是id選擇器。

即:

作品:

'content': $(this).find('#text_content').val(), 

不起作用:

'content' : $(this).find('input[name=text_content]').val(), 

不知道爲什麼名稱選擇的文本區域沒有工作(它的工作對所有其他字段),但有你擁有了它。