我正在 MVC 5 中工作,并且我有一个 HTML.TextArea,它在页面加载时具有初始值。它加载正确,但如果您在文本区域中键入任何内容或更改任何内容,则该值不会在 DOM 中更新。我可以查看页面源代码,它没有改变。我还尝试了 HTML.TextAreaFor 来尝试绑定(bind)方法,但也未能更新对初始值的任何更改。我在谷歌上找不到任何关于这个问题的信息,所以希望有人能够阐明这种奇怪的行为。我像躲避瘟疫一样避开 TextArea,因此对它们的了解有限。
@HTML.TextArea("MyTextArea","My Test Text")
加载“我的测试文本”,然后如果您键入“但它不起作用!” DOM/Postback 值不会随着添加的文本而更新,返回 ("My Test Text")
最佳答案
对于以下元素...
<input type="text" value="My Text" />
<textarea>My Text</textarea>`
...HTML 将反射(reflect)最初呈现的内容,即使用户使用浏览器的 UI 对其进行了更新。
如果表单为POST
,则将反射(reflect)这些元素的更新值或者如果您尝试使用 jQuery 获取文本区域/文本框的值,例如:
var currentTextareaValue = $('#yourtextareaid').val()
值得注意的是,DOM 和 HTML 输出之间存在差异。以下是 Google 对 DOM 的定义:
The Document Object Model (DOM) is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML, and XML documents. The nodes of every document are organized in a tree structure, called the DOM tree.
DOM 会更新,但 HTML 输出不会更新,除非您专门对此进行更改,例如更新文本框的 value 属性或 <textarea>
之间的值。标签:
// Update the textbox value
$('#yourtextboxid').attr("value", "new value");
// Update the text area value
$('#yourtextareaid').html("new value")
关于asp.net-mvc - Html.TextArea 值/文本在页面加载后未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32504915/