首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

谷歌火狐不支持innerHTML取值,IE可以,如何解决?

2013-07-09 
谷歌火狐不支持innerHTML取值,IE可以,怎么解决?急急急1、//document.getElementById(tablehtml).valuedo

谷歌火狐不支持innerHTML取值,IE可以,怎么解决?急急急
1、//document.getElementById('tablehtml').value=document.getElementById('Table_Content').innerHTML;

2、// <input id="tablehtml" type="hidden" name="tablehtml" value="" runat="server" />

3、

<div id="Table_Content">            
            <table class="bkzzsgztcbNoBorder" cellspacing="0" cellpadding="1" width="670" border="0">
    <tbody>
        <tr>
            <td style="font-weight: bold; font-size: 24px" align="center" colspan="6" height="40">信息调查表</td>
        </tr>
        <tr>
            <td align="center" colspan="6" height="20">资助生跟踪调查表(20<input class="input" id="n1" style="width: 30px" maxlength="2" size="1" name="n1" type="text"> - 20<input class="input" id="n2" style="width: 30px" maxlength="2" size="1" name="n2" type="text"> 年度第 <input class="input" id="xq" style="width: 30px; " maxlength="1" size="1" name="xq" type="text"> 学期)</td>
        </tr>
        <tr>
            <td align="left" width="60">所在系:</td>
            <td align="left" width="150"><input class="input" id="x" name="x" type="text" style=""></td>
            <td align="left" width="100">专业(班级):</td>
            <td align="left"><input class="input" id="zybj" name="zybj" type="text" style=""></td>
            <td align="left" width="50">NO:</td>
            <td align="left" width="100"><input class="input" id="no" name="no" type="text"></td>
        </tr>
    </tbody>
</table>
</div>


通过第一句要实现“Table_Content”div内的内容赋值给input“tablehtml”;
问题1:因为“Table_Content”内容是需要别人填写的。IE下获取正常;谷歌或火狐下,获取不到表单的值(input等的输入内容),获得的是美容表单输入项内容的内容(类似空白提交)?
问题2:单项和复选框在IE8下也是没有获取,系统最初是ie7下做的,当时测试是正常的。能不能让表单内容单选和复选框的内容也获取? 谷歌 火狐 innerHTML ie 取值
[解决办法]

引用:
回复四楼:DIV 本身就可以使用innerHTML获取,获取的是表单第一次加载的内容,一些input框和text框,包括单选复选框内容在页面上输入无法获取,在IE下是可以的,在谷歌下,包括现在的360浏览器都无法获取,获取的是第一次加载的内容,输入的文本内容不会出现。---问题在这里,你可以试试。

回复五楼:runat="server" 只是指定这个是服务器控件,因为我这个是。net程序,这个控件被赋值后,后台要写入数据库的。这个控件的值是取的到的。关键在于我要取到的“innerHTML”,是一个表单类似的页面,其中的一些内容需要通过input框和text框,包括单选复选框输入。在ie下,输入的内容可以被获取,其他情况下,输入的内容为空的,即没有获取。

所以四楼和五楼都理解错误了,可能2搂也是理解错了。不是不能获取值,是无法获取手动输入后的那些内容。你只可以直接复制我的代码在本地测试下,在文本框内输入内容,取到的是原本的页面内容,还是已经加了输入内容的内容。

明白你的意思了,你是想用innerHTML获取包含input后来输入的数据,这个你就得了解每个浏览器的解析和运行机制了
[解决办法]
根据浏览器的运行原理产生的BUG,可以修改如下

建议这部分你用JQ来实现下
代码给你参考

 <script src="js/jquery144.js" type="text/javascript"></script>
   
 <script type="text/javascript">

            $(".ddd").live("click",function(){
$("input").each(function(){ 
var idobj=$(this).attr("id")
var dd=$(this).val();
 document.getElementById(idobj).setAttribute("value", dd);
        });
alert($("#Table_Content").html())
});
    </script>

[解决办法]
引用:
根据浏览器的运行原理产生的BUG,可以修改如下

建议这部分你用JQ来实现下
代码给你参考

 <script src="js/jquery144.js" type="text/javascript"></script>
   
 <script type="text/javascript">

            $(".ddd").live("click",function(){
$("input").each(function(){ 


var idobj=$(this).attr("id")
var dd=$(this).val();
 document.getElementById(idobj).setAttribute("value", dd);
        });
alert($("#Table_Content").html())
});
    </script>



//遍历单选
$('input:radio:checked').each(function () {
     var idobj = $(this).attr("id");
     document.getElementById(idobj).setAttribute("checked", "checked");
});
//遍历多选
$('input:checkbox:checked').each(function () {
     var idobj = $(this).attr("id");
     document.getElementById(idobj).setAttribute("checked", "checked");
});

热点排行