Textarea没有获得jQuery中的更新文本

时间:2011-08-25 15:02:56

标签: jquery asp.net-mvc-3

所以我有一个剃刀观点:

@{
    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 id=@("entry"+@i) rows="5" style="width:730px; overflow:auto;">@story.Description</textarea><br /><br />
        i++;
    }
}

因此,当页面最初加载时,具有id entry1的textarea具有类似“this is a story”的描述。一旦我在该文本区域输入内容,然后点击一个按钮,其唯一功能是:

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

我仍然得到“这是一个故事”。为什么textarea不会更新我输入的文本?

4 个答案:

答案 0 :(得分:25)

您想使用$("#entry1").val()来获取textarea中的文字。

答案 1 :(得分:6)

您需要使用.val()而不是.text(),因为这是访问<textarea>的内容的方式:

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

应该是:

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

答案 2 :(得分:3)

.val将返回文本区域的内容

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

.val()方法主要用于获取表单元素的值

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

与.html()方法不同,.text()可以在XML和HTML文档中使用。 .text()方法的结果是一个包含所有匹配元素的组合文本的字符串。

答案 3 :(得分:3)

我认为文本.text()不起作用的原因是因为text属性获取textarea标记之间的文本值,并且在更改textarea的值时不会更新此值。

输入的文本存储在textarea控件的value属性中。

这是显示示例的fiddle。 jQuery的val()选择相同的属性值,因此您也可以使用val()