【问题标题】:Textarea not getting updated text in jQueryTextarea没有在jQuery中获取更新的文本
【发布时间】:2023-04-06 08:55:01
【问题描述】:

所以我有一个剃刀的看法:

@{
    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 具有类似“这是一个故事”的描述。一旦我在该文本区域中输入了一些内容,然后点击一个按钮,其唯一功能是:

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

我仍然得到“这是一个故事”。为什么我输入的文本没有更新文本区域?

【问题讨论】:

  • 看起来像一个 jQuery 错误(或怪癖?:)。在 IE 中 .text() 返回更新后的 DOM 值,但 Chrome 和 FF 需要使用 .val()。绝对同意 .val() 是有道理的。在这里看小提琴:jsfiddle.net/SSYpF

标签: jquery asp.net-mvc-3


【解决方案1】:

您想使用$("#entry1").val() 来获取文本区域内的文本。

【讨论】:

  • 啊!我不敢相信我没有想到这一点。谢谢...。我会在时限到期后尽快接受您的答复。
【解决方案2】:

您将希望使用.val() 而不是.text(),因为这是访问&lt;textarea&gt; 内容的方法:

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

应该是:

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

      这里是一个fiddle 显示示例。 jQuery 的val() 选择了相同的属性值,所以你不妨使用val()

      【讨论】:

        猜你喜欢
        • 2010-09-13
        • 2011-06-17
        • 1970-01-01
        • 1970-01-01
        • 2013-01-10
        • 1970-01-01
        • 2011-08-15
        • 1970-01-01
        相关资源
        最近更新 更多