【问题标题】:get textarea value using javascript in opera在opera中使用javascript获取textarea值
【发布时间】:2010-12-28 09:33:35
【问题描述】:

我正在尝试使用 Javascript 获取 textarea 的值,以检查它是否为空,但它在 Opera 中不起作用。在 IE、FF 和 Chrome 中它工作正常,但在 Opera 11 和 10 中它报告的值为空字符串,即使它有文本。 这是我的代码:

if (document.getElementById('mytextareaid').value.replace(/(^\s+|\s+$)/, '') == '') {
    alert('empty textarea');
}

使用 document.getElementById('mytextareaid').innerHTML 也不起作用。我错过了什么?

【问题讨论】:

  • 你能做两件事吗 1. alert(document.getElementById('mytextareaid')); 2.你能把你的文本区域的标记附加到你的问题上吗?我已经在歌剧中测试过,一切都很好

标签: javascript textarea opera


【解决方案1】:

换成这个试试

if (document.getElementById('mytextareaid').innerHTML.replace(/(^\s+|\s+$)/, '') == '') {
    alert('empty textarea');
}

【讨论】:

  • 尝试在 if 条件之前提醒 document.getElementById('mytextareaid').innerHTML 并确保 textarea 的 id 正确
  • 警报显示一个空字符串。同样在 Dragonfly 中,我在 textarea 的 dom 节点中看不到任何文本。但是浏览器的文本区域中显示了文本。还有其他想法吗?
  • 检查textarea的id是否在文档中多次使用
  • 你也可以检查这个属性'nodeValue' document.getElementById('mytextareaid').nodeValue
  • 我很肯定我正在处理正确的文本区域,因此多次使用 id 不是问题。节点值返回空值。不过,感谢您的尝试。
【解决方案2】:

感谢大家的帮助。事实证明,它适用于只有一个文本区域的简单页面,但在我的特定 HTML 文档中它没有。我终于在这里找到了解决方法: JQuery val() does not work for textarea in Opera 我不知道究竟是什么导致了这种奇怪的行为,但我知道那块

【讨论】:

    【解决方案3】:

    引用我自己的话 JQuery val() does not work for textarea in Opera

    您可能在 Opera 站点补丁博客 (http://my.opera.com/sitepatching/blog/facebook-and-some-core-patches) 上的一篇博文中遇到了一个非常晦涩的错误,该错误被称为“PATCH-287,Hack to make script see typed value in TEXTAREA on blog.ebuddy.com。 Opera 无法从之前隐藏的文本区域中读取正确的值”。

    我有点不愿意在没有看到完整代码的情况下推荐解决方法。

    但是,当我查看此内容时,我注意到将 textarea.contentEditable 设置为某些内容似乎可以让我事后读取该值..虽然这是一个奇怪的 hack,它可能会导致其他浏览器出现问题。

    【讨论】:

      猜你喜欢
      • 2011-12-15
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 2011-08-15
      • 2010-12-18
      • 2013-03-22
      相关资源
      最近更新 更多