2011-08-25 49 views
12

沒有得到更新文本所以我有一個Razor視圖:textarea的jQuery的

@{ 
    int i=1; 
    foreach(var story in Model.Storylines) 
    { 
     <span style="float:left;">Storyline @i</span> <span style="float:right; margin-right:5px;">Character Count: @story.CharCount</span><br /><br /> 
     <textarea [email protected]("entry"[email protected]) rows="5" style="width:730px; overflow:auto;">@story.Description</textarea><br /><br /> 
     i++; 
    } 
} 

因此,與ID取值範textarea的有描述,如「這是一個故事,」在最初的頁面加載。當我輸入一些東西到該文本區域,然後打一個按鈕,其唯一的功能是:

alert($("#entry1").text()); 

我仍然得到「這是一個故事」。爲什麼textarea沒有使用我輸入的文本進行更新?

+0

看起來像一個jQuery錯誤(或怪癖?:)。在IE .text()中返回更新的DOM值,但Chrome和FF需要使用.val()。絕對同意.val()是有道理的。在這裏看到小提琴:http://jsfiddle.net/SSYpF/ – nothingisnecessary

回答

24

您想使用$("#entry1").val()來獲取文本區域內的文本。

+0

ARGH!我不敢相信我沒有想到這一點。謝謝....我會盡快接受你的回答。 –

6

你將要使用.val(),而不是.text(),因爲這是如何訪問<textarea>的內容:

alert($("#entry1").text()); 

應該是:

alert($("#entry1").val()); 
3

.VAL將返回文本區的內容

http://api.jquery.com/val/

的.VAL()方法主要用於獲得表單元素

http://api.jquery.com/text/

不同於html的()方法的值,的.text()可以在兩個XML和HTML文檔中使用。 .text()方法的結果是一個包含所有匹配元素的組合文本的字符串。

3

我認爲文字.text()不起作用的原因是因爲text屬性獲取textarea標記之間的文本值,並且當您更改textarea的值時,此值不會更新。

輸入的文本存儲在textarea控件的value屬性中。

這裏是一個fiddle顯示的例子。 jQuery的val()挑出相同的屬性值,所以你不妨使用val()