我正在尝试获取textarea的值,检查它是否为空,使用Javascript并且它在Opera中不起作用。在IE,FF和Chrome中,它工作正常,但在Opera 11和10中它报告的值是空字符串,即使它有文本。 这是我的代码:
if (document.getElementById('mytextareaid').value.replace(/(^\s+|\s+$)/, '') == '') {
alert('empty textarea');
}
使用document.getElementById('mytextareaid')。innerHTML代替,也不起作用。我错过了什么?
答案 0 :(得分:3)
替换为此并尝试
if (document.getElementById('mytextareaid').innerHTML.replace(/(^\s+|\s+$)/, '') == '') {
alert('empty textarea');
}
答案 1 :(得分:1)
谢谢大家的帮助。事实证明,它适用于只有textarea的简单页面,但在我的特定HTML文档中却没有。我终于找到了一个解决方法: JQuery val() does not work for textarea in Opera 我不知道究竟是什么导致了这种奇怪的行为,但我确实知道这件事
答案 2 :(得分:0)
引用自己的话 JQuery val() does not work for textarea in Opera:
您可能在Opera网站上发布了博客帖子(http://my.opera.com/sitepatching/blog/facebook-and-some-core-patches)中提到的一个非常模糊的错误“PATCH-287,Hack使脚本在blog.ebuddy上看到TEXTAREA中的类型值。 com.Opera无法从之前隐藏的textarea中读取正确的值“。
我有点不愿意在没有看到完整代码的情况下推荐变通方法。
但是,当我看到这个时,我注意到将textarea.contentEditable设置为某些东西似乎让我后来读取了这个值。虽然这是一个奇怪的黑客,但它可能会给其他浏览器带来问题。