Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery textarea上的val()停止工作_Jquery_Asp.net_Dom_Textarea - Fatal编程技术网

Jquery textarea上的val()停止工作

Jquery textarea上的val()停止工作,jquery,asp.net,dom,textarea,Jquery,Asp.net,Dom,Textarea,我有一个网站/平板电脑html5网络应用程序,在那里我使用文本区域 我的问题是“某些”javascript代码/库或任何使对textarea的val()调用发生故障的东西。它总是返回通常通过text()获得的值—从服务器端设置的文本。我在这个web应用程序上使用了大量jquery,没有任何问题 我确定的第一件事是DOM本身是正确的,没有任何问题。我将整个DOM保存到一个新的html文件中,并删除了所有Java脚本。通过一个简单的按钮,我可以用val()读取文本区域 然而,在真实网站上执行的相同的

我有一个网站/平板电脑html5网络应用程序,在那里我使用文本区域

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

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

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

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

该网站使用jQuery 1.4.2。我尝试过重载本地jQuery版本1.9.1,只是为了使用noConflict()来排除任何旧版本的问题

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

有人知道jQuery功能受到“干扰”影响吗,特别是使用val()


谢谢

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

var m = this.val();  
return (m == "" ? this.attr('value') : m);

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

我现在的解决方法是在textarea的每个keypress()事件上设置.text()。这是我以后从框中取出新输入的用户文本的唯一方法

我正在使用一个secong控件(隐藏)来存储我的原始默认文本框,以便能够恢复到这个状态。整个应用程序完全基于AJAX(几乎就像离线应用程序)


谢谢任何人

回答我自己的问题:我构建了一个复杂的设置超时和定时器结构(因为平板电脑/手机上没有真正的“关闭键盘”事件)。这导致他无法读取文本框中的my val()。

很难说没有提到使用的其他库或影响
文本区域的任何其他内容。。。如果我不得不猜测的话,我会说您正在使用某种javascript富文本编辑器,比如TinyMCE,它有自己的API来获取/设置值。但是我使用Syncfusion ASP.Net控件框架。不过,我在文章中提到的textarea控件是纯ASP/HTML textareas。从技术上讲,元素的值是元素内部的字符数据,这恰好也是
.text()
返回的值。我是不是误解了这个问题?你好,鲁本,谢谢。否,text()将从服务器端传递原始文本集。val()函数将为您提供可能已被用户更改的新文本。实际上,“新”值不可见,例如在FireBug中。它隐藏在“某处”其他地方。@MatthiasMax啊,这更有意义。您是正确的,假设您正在使用
.val('some text string')
从服务器设置新值。但是,有一些方法可以避免这种情况,比如使用
.text('some text string')
()设置值。如果您没有任何代码,这可能就是我所能提供的全部帮助。