我有一个网站/平板电脑html5网络应用,我使用textareas。
我的问题是“某些”javascript代码/库或其他什么使得textarea上的val()调用出现故障。它总是返回您通常使用text()获得的值 - 从服务器端设置的文本。我在这个网络应用程序上使用大量的jquery没有任何问题。
我首先确定的是DOM本身是正确的,没有任何问题。我将整个DOM保存到一个新的html文件中并删除了所有javascripts。只需一个简单的按钮,我就可以用val()读取textarea。
在真实网站上执行的相同阅读代码会出现故障。因此,与其他现有的javascript代码/库存在某种依赖关系。
服务器端架构是ASP.Net网站。因此,在后台运行了相当多的代码(Scriptmanager,MS Ajax,第三方控件,....)
该网站使用jQuery 1.4.2。我已经尝试重载一个本地jQuery版本1.9.1只是为了那个小的val()部分与noConflict(),以排除任何旧版本问题没有运气。
我知道我非常抽象,但由于网站依赖于庞大的数据库而且所有开发都在一个封闭的网络中,我可以提供一个链接。
是否有人意识到使用val()特别对jQuery功能产生“令人不安”的影响?
谢谢
答案 0 :(得分:0)
如果控件是文本区域,您可以尝试编写如下的通用方法或使用.attr('value')。
var m = this.val();
return (m == "" ? this.attr('value') : m);
答案 1 :(得分:0)
非常感谢所有的输入。在这种情况下,似乎无法找到val()故障的真正原因。
我现在的解决方法是在textarea的每个keypress()事件上设置.text()。这是我以后唯一可以获得用户新输入文本的方法。
我正在使用secong控件(隐藏)来存储我的原始默认文本框,以便能够恢复到此。整个应用程序充满了AJAX(几乎就像一个离线应用程序)。
谢谢任何人!
答案 2 :(得分:0)
回答我自己的问题:我构建了一个复杂的setTimeouts和定时器结构(由于平板电脑/手机上没有真正的“关闭键盘”事件)。这导致bein无法读取文本框的val()。