Home  >  Article  >  Web Front-end  >  FireFox下innerHTML无法获取到文本框的value值_html/css_WEB-ITnose

FireFox下innerHTML无法获取到文本框的value值_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:17:111369browse

演示地址
http://218.26.94.139/tmp/test.htm

当通过js代码给文本框赋值后,FireFox的innerHTML无法得到文本框的value值.


回复讨论(解决方案)

如果把源代码稍微修改一下,
文本框里面预先就写上值,再通过js修改为CCCC,在IE中显示为CCCC,但在FF显示为AAAA,就是说Firefox中无法得到文本框动态写入的值.

结论:FireFox还真不是一般的废物.

确实是这样,在Chrome、Opera中也是如此。

由于需要这个功能的HTML内部结构非常复杂,把值遍历取出再赋回过于复杂,最后我的处理结果
if(ISFF)
{
    alert("由于FireFox功能的缺陷,本操作不支持在FireFox下调用,请改用IE浏览器.");
    return;
}

刚才还遇到了一个问题,就是XML在Firefox下如果节点内容值长度超过4096则自动截成多个节点,一头雾水又折腾了半天才做了处理代码.
标准有个屁用呀,好些功能要么不支持,要么有bug,某人骚燥的非要代码同时支持IE和FireFox,再日一次FireFox,一并日.

有时候,要想兼容所有的浏览器,只有先 js判断,然后调用 不同的 方法!

如果能这么做我就已经烧了高香了,关键是这么做也不行呀.
代码中有很多地方做判断
if(isie)
 ……
else
 ……

关键这个功能firefox是有问题的呀.

何必搞得这么复杂,你赋值时不要直接赋,直接添加属性不就可以了。试下下面的
document.getElementById("inp1").setAttribute("value",“ccc”);

这只是说明这个问题的一个例子,真正的程序是很复杂的,文本框内的值都是人工手填的


你可以借鉴下 jquery的源代码 看他是怎么取value的

你可以借鉴下 jquery的源代码 看他是怎么取value的
jq也是一样的。感觉这个是浏览器的问题,我检查了下。=。=!
ff chrome opera ie9都是这样的。。。

不是吧,IE9也是这样?!

IE9没这个问题,试过了
别吓唬我,这可是个很重要的功能.

在后面加上这句就可以实现动态输入时innerHTML得到Value.

document.getElementById("inp1").addEventListener("keyup",function(){document.getElementById("inp1").setAttribute("value",document.getElementById("inp1").value);},false);

IE9没这个问题,试过了
别吓唬我,这可是个很重要的功能.

IE9 100%一样,你可以在你的测试页面使用IE9测试下,我用的是x64 的IE 文档模式IE9 浏览器模式IE9
你可能是使用了Quirks模式

smsType = document.getElementById("smsType").value;
calledNumber = document.getElementById("calledNumber").value;
content = document.getElementById("content").value;
content = encodeURIComponent(content);

我怎么一取一个准啊。。。

把ff的历史记录清除就能更新了!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn