上次的随笔有个问题,对firefox不支持,而且如果是用datagrid或者datalist或者repeater绑定的文本框就会出现问题.下面是新代码:
<div id="pop" style="DISPLAY: none; FONT-SIZE: 12px; BACKGROUND: #ffff00; WIDTH: 120px; POSITION: absolute"></div>
            <script language="javascript">
      var cen = document.getElementById("pop");//得到那个提示框
      function fen(e)
      {
         //通过隐藏字段得到总分数
         var zong = parseInt((document.getElementById("hiddenMark")).value);
         var obj = document.getElementById("Table2");//得到那个包含repeater的表格
         var objs = obj.getElementsByTagName("INPUT");//得到表格里所有输入框
         var gei = 0;//定义已经给了多少分
         for(var i=0;i<objs.length;i++)
         {
            gei = gei+parseInt(objs[i].value);//循环得到所有已经给的分
         }
         var n = zong - gei;//得到还有多少分可以给
         //如果多给了分就让提示层的背景红色
       
         cen.style.background = (n<0) ? "#ff0000" : "#ffff00"; 
         cen.innerHTML = "该问题总分值:" + zong + "还可以给的分:" + n;
         return n;
      }
     
      //当鼠标移到这个给分框的时候执行这个函数
      function cc(e)
      {
         var a = e.id;//首先根据传入的对象获得他的id
         var b = document.getElementById(a);//再根据id获得这个对象
         b.select();//让取得的这个输入框全部选择,当然也获得了焦点,必须要这样才能够让他获得焦点
         fen(e);//计算分数
         var ttop = b.offsetTop;//获得输入框的上面偏移
         var tleft= b.offsetLeft;//获得输入框的左偏移量
         var h = b.clientHeight;//获得输入框的高度
         var w = e.clientWidth;//获得输入框的宽度
         while (b = b.offsetParent){ttop += b.offsetTop; tleft += b.offsetLeft;}
         cen.style.top = ttop + h;
         cen.style.left= tleft + w - cen.clientWidth;
         cen.style.display = "";
      }
     
      //当鼠标移开的时候执行的函数
      function out(e)
      {
         cen.style.display = "none"; //提示层隐藏
      }
            </script>
      </body>

经过测试在firefox下面一切显示正常!!!