-1

我有一个使用 textareas 的网站/平板电脑 html5 网络应用程序。

我的问题是“一些”javascript 代码/库或任何使 val() 调用 textarea 故障的东西。它总是返回您通常使用 text() 获得的值 - 从服务器端设置的文本。我在这个网络应用程序上使用了大量的 jquery,没有任何问题。

我首先确定的是 DOM 本身是正确的,没有任何问题。我将整个 DOM 保存到一个新的 html 文件并删除了所有 javascript。通过一个简单的按钮,我可以使用 val() 读取文本区域。

但是,在真实网站中执行的相同读取代码会出现故障。因此,与其他现有的 javascript 代码/库存在某种依赖关系。

服务器端架构是一个 ASP.Net 网站。因此有相当多的代码在后台运行(Scriptmanager、MS Ajax、第三方控件......)

该网站使用 jQuery 1.4.2。我尝试使用 noConflict() 为那个微小的 val() 部分重载本地 jQuery 版本 1.9.1,以排除任何没有运气的旧版本问题。

我知道我很抽象,但由于该网站依赖于一个巨大的数据库并且所有开发都在一个封闭的网络内,我可以提供一个链接。

有没有人知道对 jQuery 功能特别是 val() 的“令人不安”的影响?

谢谢

4

3 回答 3

0

如果控件是文本区域,您可以尝试编写如下所示的通用方法或使用 .attr('value') 。

var m = this.val();  
return (m == "" ? this.attr('value') : m);
于 2013-03-20T10:55:57.983 回答
0

非常感谢所有输入。在这种情况下,似乎不可能找到 val() 故障的真正原因。

My workaround now is to set the .text() on every keypress() event of the textarea. Thats the only way I can get the newly entered text of the user out of the box later on.

I'm using a secong control (hidden) to store my original default text of the box to be able to restore to this. The whole app is full on AJAX (almost like an off line app).

Thanks anyone!

于 2013-03-21T06:54:34.353 回答
0

To answer my own question: I had build a complex structure of setTimeouts and timers (due to the lack of a real "close keyboard" event on tablets/phones). This led to bein unable to read my val() of the textbox.

于 2013-04-09T07:00:40.260 回答