csdn 结帖页面JS检验代码在firefox下失效:<script language="javascript">
var cen = document.all.pop;
function fen()
{
var zhong = parseInt(document.all.zhongFen.value,10); //得到总分值
var a = document.getElementsByName("T");
var gei = 0;
for (var i=0; i<a.length; i++)
{ gei = (a[i].value=="") ? gei : (gei + parseInt(a[i].value,10));}
var n = zhong-gei;
cen.style.background = (n < 0) ? "#FF0000" : "#FFFF00";
cen.innerText = "该问题总分值:"+ zhong +"\r\n现可给的分值:"+ n;
return n;
}
function cc(e)
{
if (e.name != "T") return;
e.select();
fen();
var ttop = e.offsetTop;
var tleft= e.offsetLeft;
var h = e.clientHeight; //在下面这个 while 循环里的e已经不是那个形参了
var w = e.clientWidth; while (e = e.offsetParent){ttop += e.offsetTop; tleft += e.offsetLeft;}
cen.style.display = ""; //层显示
cen.style.top = ttop + h;
cen.style.left= tleft + w - cen.clientWidth;}
function out(){cen.style.display = "none";}
function check(e)
{
var k = window.event.keyCode;
if (k < 48 || k > 57){
alert("你输入的不是数字!")
window.event.keyCode = 0 ;}
}
</script>
建议使用以下代码(草改):<input type="hidden" value="50" name="zhongFen" id="Hidden1">
<table width="200" border="1">
<tr>
<td><div><input type="text" name="T" size="4" onKeyup="check(this)" onMouseOver="cc(this)" onmouseout="out()"></div></td>
</tr>
<tr>
<td><div><input type="text" name="T" size="4" onKeyup="check(this)" onMouseOver="cc(this)" onmouseout="out()"></div></td>
</tr>
<tr>
<td><div><input type="text" name="T" size="4" onKeyup="check(this)" onMouseOver="cc(this)" onmouseout="out()"></div></td>
</tr>
</table>
<script language="javascript" type="text/javascript"><!--
var zhong=parseInt(document.getElementById("Hidden1").value,10); //得到总分值
var con=document.createElement('span');
function fen(){
var a=document.getElementsByName("T");
var gei=0;
for(var i=0;i<a.length;i++){
gei=(a[i].value=="")?gei:(gei+parseInt(a[i].value,10));
}
var n=zhong-gei;
return n;
}
function cc(obj){
if(obj.name!="T") return;
n=fen();
wai=obj.parentNode;
cen=wai.insertBefore(con,obj);
cen.id="gei";
wai.style.position="relative";
cen.style.position="absolute";
cen.style.top="0";
cen.style.left="3em";
cen.style.background=(n<0)?"#FF0000":"#FFFF00";
cen.innerHTML="该问题总分值:"+zhong+"<br/>现可给的分值:"+n;
}
function out(){
wai.style.position="";
the=document.getElementById("gei");
if(the){
wai.removeChild(the);
}
}
// 只允许输入数字
function check(obj){
if(obj.value!="" && !/^\d{1,3}$/.test(obj.value)){
alert("你输入的分值不对,应为1-3位的数字!");
obj.value="";
}
}
//--></script>
var cen = document.all.pop;
function fen()
{
var zhong = parseInt(document.all.zhongFen.value,10); //得到总分值
var a = document.getElementsByName("T");
var gei = 0;
for (var i=0; i<a.length; i++)
{ gei = (a[i].value=="") ? gei : (gei + parseInt(a[i].value,10));}
var n = zhong-gei;
cen.style.background = (n < 0) ? "#FF0000" : "#FFFF00";
cen.innerText = "该问题总分值:"+ zhong +"\r\n现可给的分值:"+ n;
return n;
}
function cc(e)
{
if (e.name != "T") return;
e.select();
fen();
var ttop = e.offsetTop;
var tleft= e.offsetLeft;
var h = e.clientHeight; //在下面这个 while 循环里的e已经不是那个形参了
var w = e.clientWidth; while (e = e.offsetParent){ttop += e.offsetTop; tleft += e.offsetLeft;}
cen.style.display = ""; //层显示
cen.style.top = ttop + h;
cen.style.left= tleft + w - cen.clientWidth;}
function out(){cen.style.display = "none";}
function check(e)
{
var k = window.event.keyCode;
if (k < 48 || k > 57){
alert("你输入的不是数字!")
window.event.keyCode = 0 ;}
}
</script>
建议使用以下代码(草改):<input type="hidden" value="50" name="zhongFen" id="Hidden1">
<table width="200" border="1">
<tr>
<td><div><input type="text" name="T" size="4" onKeyup="check(this)" onMouseOver="cc(this)" onmouseout="out()"></div></td>
</tr>
<tr>
<td><div><input type="text" name="T" size="4" onKeyup="check(this)" onMouseOver="cc(this)" onmouseout="out()"></div></td>
</tr>
<tr>
<td><div><input type="text" name="T" size="4" onKeyup="check(this)" onMouseOver="cc(this)" onmouseout="out()"></div></td>
</tr>
</table>
<script language="javascript" type="text/javascript"><!--
var zhong=parseInt(document.getElementById("Hidden1").value,10); //得到总分值
var con=document.createElement('span');
function fen(){
var a=document.getElementsByName("T");
var gei=0;
for(var i=0;i<a.length;i++){
gei=(a[i].value=="")?gei:(gei+parseInt(a[i].value,10));
}
var n=zhong-gei;
return n;
}
function cc(obj){
if(obj.name!="T") return;
n=fen();
wai=obj.parentNode;
cen=wai.insertBefore(con,obj);
cen.id="gei";
wai.style.position="relative";
cen.style.position="absolute";
cen.style.top="0";
cen.style.left="3em";
cen.style.background=(n<0)?"#FF0000":"#FFFF00";
cen.innerHTML="该问题总分值:"+zhong+"<br/>现可给的分值:"+n;
}
function out(){
wai.style.position="";
the=document.getElementById("gei");
if(the){
wai.removeChild(the);
}
}
// 只允许输入数字
function check(obj){
if(obj.value!="" && !/^\d{1,3}$/.test(obj.value)){
alert("你输入的分值不对,应为1-3位的数字!");
obj.value="";
}
}
//--></script>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货