【发布时间】:2013-03-20 00:08:48
【问题描述】:
我有一个使用 textareas 的网站/平板电脑 html5 网络应用程序。
我的问题是“一些”javascript 代码/库或任何使 val() 调用 textarea 故障的东西。它总是返回您通常使用 text() 获得的值 - 从服务器端设置的文本。我在这个网络应用程序上使用了大量的 jquery,没有任何问题。
我首先确定的是 DOM 本身是正确的,没有任何问题。我将整个 DOM 保存到一个新的 html 文件并删除了所有 javascript。通过一个简单的按钮,我可以使用 val() 读取文本区域。
但是,在真实网站中执行的相同读取代码会出现故障。所以与其他现有的 javascript 代码/库存在某种依赖关系。
服务器端架构是一个 ASP.Net 网站。因此有相当多的代码在后台运行(Scriptmanager、MS Ajax、第三方控件……)
网站使用 jQuery 1.4.2。我已经尝试重载一个本地 jQuery 版本 1.9.1,只是为了使用 noConflict() 来排除任何旧版本问题。
我知道我很抽象,但由于网站依赖于一个庞大的数据库并且所有开发都在一个封闭的网络中,我可以提供一个链接。
有人知道 jQuery 功能尤其是 val() 对 jQuery 功能的“干扰”影响吗?
谢谢
【问题讨论】:
-
很难说不提及使用的其他库或影响
textarea的任何其他内容...如果我不得不猜测我会说您正在使用某种javascript富文本编辑器,例如TinyMCE 有自己的 API 来获取/设置值。 -
您好,未使用 TinyMCE。但我使用的是 Syncfusion ASP.Net 控件框架。我帖子中提到的 textarea 控件是纯 ASP/HTML textareas。
-
<textarea>元素的值在技术上是元素内部的字符数据,这恰好也是.text()返回的值。我误解了这个问题吗? jsfiddle.net/Gn4wk/1 -
嗨鲁本,谢谢。不, text() 将从服务器端传递原始文本集。 val() 函数将为您提供可能已被用户更改的新文本。实际上,“新”值是不可见的,例如在萤火虫。它隐藏在其他“某处”。
-
@MatthiasMax 啊,这更有意义。您是正确的,假设您使用
.val('some text string')从服务器设置新值。但是,有一些方法可以避免这种情况,例如使用.text('some text string')(example) 设置值。没有你的任何代码,这可能是我能提供的所有帮助。
标签: jquery asp.net dom textarea