所以我有一个剃刀观点:
@{
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不会更新我输入的文本?
答案 0 :(得分:25)
您想使用$("#entry1").val()
来获取textarea中的文字。
答案 1 :(得分:6)
您需要使用.val()
而不是.text()
,因为这是访问<textarea>
的内容的方式:
alert($("#entry1").text());
应该是:
alert($("#entry1").val());
答案 2 :(得分:3)
.val将返回文本区域的内容
.val()方法主要用于获取表单元素的值
与.html()方法不同,.text()可以在XML和HTML文档中使用。 .text()方法的结果是一个包含所有匹配元素的组合文本的字符串。
答案 3 :(得分:3)
我认为文本.text()
不起作用的原因是因为text属性获取textarea标记之间的文本值,并且在更改textarea的值时不会更新此值。
输入的文本存储在textarea控件的value
属性中。
这是显示示例的fiddle。 jQuery的val()
选择相同的属性值,因此您也可以使用val()