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下做的,当时测试是正常的。能不能让表单内容单选和复选框的内容也获取?谷歌火狐innerHTMLie取值

解决方案 »

  1.   

    解决firefox不能取值的问题document.getElementById('tablehtml').value=document.getElementById('Table_Content').innerHTML || document.getElementById('Table_Content').textContent;
      

  2.   

    DIV 本身就可以使用innerHTML获取的,你怎么说不能用呢?不信你可以试试
    alert(document.getElementById('Table_Content').innerHTML)
    就知道是不是有值的
    所以程序不是在这里的问题
      

  3.   


    1.firefox  chrome 都可以用innerHTML的
    2.你的HTML是不是有问题,tablehtml并没有出现。// <input id="tablehtml" type="hidden" name="tablehtml" value="" runat="server" />
      

  4.   

    回复四楼:DIV 本身就可以使用innerHTML获取,获取的是表单第一次加载的内容,一些input框和text框,包括单选复选框内容在页面上输入无法获取,在IE下是可以的,在谷歌下,包括现在的360浏览器都无法获取,获取的是第一次加载的内容,输入的文本内容不会出现。---问题在这里,你可以试试。回复五楼:runat="server" 只是指定这个是服务器控件,因为我这个是。net程序,这个控件被赋值后,后台要写入数据库的。这个控件的值是取的到的。关键在于我要取到的“innerHTML”,是一个表单类似的页面,其中的一些内容需要通过input框和text框,包括单选复选框输入。在ie下,输入的内容可以被获取,其他情况下,输入的内容为空的,即没有获取。所以四楼和五楼都理解错误了,可能2搂也是理解错了。不是不能获取值,是无法获取手动输入后的那些内容。你只可以直接复制我的代码在本地测试下,在文本框内输入内容,取到的是原本的页面内容,还是已经加了输入内容的内容。
      

  5.   

    明白你的意思了,你是想用innerHTML获取包含input后来输入的数据,这个你就得了解每个浏览器的解析和运行机制了
      

  6.   

    根据浏览器的运行原理产生的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>
      

  7.   

    关键就是document.getElementById(idobj).setAttribute("value", dd);这句话了
      

  8.   

    innerHTML达不到要求,得自己写脚本获取表单元素的值
      

  9.   


    你这个还算是用 。net吗
    杀鸡取卵的写法
    唯一变化的就是 input中输入的内容
    既然你说你用。net  那么你应该用textbox控件 然后通过提交后台来读取控件的值
    你解题的思路不正确 所以不要继续下去了 换成控件把
      

  10.   

    1.firefox  chrome 都可以用innerHTML的,
    2.你这里用这个写法是不行的,建议你使用7楼的方法。
      

  11.   

    明白你的意思了,你是想用innerHTML获取包含input后来输入的数据,这个你就得了解每个浏览器的解析和运行机制了 楼上说得是极好的..
      

  12.   


    你这个还算是用 。net吗
    杀鸡取卵的写法
    唯一变化的就是 input中输入的内容
    既然你说你用。net  那么你应该用textbox控件 然后通过提交后台来读取控件的值
    你解题的思路不正确 所以不要继续下去了 换成控件把呵呵,您说的严重了,我只说程序是用.net的,这个部分主要是javascript部分,你说的textbox控件怎么实现我的需求?textbox能实现Table_Content页面内容输出,里面实现表单输入控件?大侠,其实你连我的问题都没看懂。不过还是谢谢你。如果真能实现,还请大侠说的详细些哈...7楼的回答是正解之一,我不知道有没有其他,其实我之前已经百度到这个代码,通过这个javaccript赋值,谷歌浏览器是会获得需求内容的输入框内容的,不过javascript代码我不是很懂,不知道如何应用结合到自己的需求。因为不但有input,还有checkbox这种,还有text等,写法7楼后来给的代码其实已经是正解了的,只是我不怎么会写而已。
      

  13.   


    //遍历单选
    $('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");
    });
      

  14.   

    我的input用你的方法解决了,单选复选input:radio:checked也解决了,现在就剩下textarea控件,比如<textarea id='t1'>点点滴滴</textarea>;这个“点点滴滴”要怎么动态赋值,我百度了很久没找到。请各位大侠再指点下
      

  15.   

    我的input用你的方法解决了,单选复选input:radio:checked也解决了,现在就剩下textarea控件,比如<textarea id='t1'>点点滴滴</textarea>;这个“点点滴滴”要怎么动态赋值,我百度了很久没找到。请各位大侠再指点下
    那个差不多一样的很简单:$("textarea").each(function(){ 
          var idobj=$(this).attr("id")
          var dd=$(this).val();
          $(this).html(dd);
          //document.getElementById(idobj).innerHTML =dd;
     });
      

  16.   

     $("textarea").each(function () {
                    var idobj = $(this).attr("id");
                    var dd = $(this).val();
                    $(this).text(dd);
                });