写了一段js。在chrome里可用,但是在firefox和ie内核的浏览器不可以用。我知道是兼容性问题,帮改,见详细
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写了一段js。在chrome里可用,但是在firefox和ie内核的浏览器不可以用。我知道是兼容性问题,帮改,见详细相关的知识,希望对你有一定的参考价值。
function SumNum()
var sumValue
a=eval(TextBox2.value);
b=eval(TextBox3.value);
c=eval(TextBox4.value);
d=eval(TextBox5.value);
e=eval(TextBox6.value);
if (isNaN(a))
a=0;
if(a>eval(TextBox31.value)
alert("此项评分不能超过该项最高分!");
self['TextBox2'].value = 0;
if (isNaN(b))
b=0;
if(b>eval(TextBox32.value))
alert("此项评分不能超过该项最高分!");
self['TextBox3'].value = 0;
if (isNaN(c))
c=0;
if(c>eval(TextBox33.value))
alert("此项评分不能超过该项最高分!");
self['TextBox4'].value = 0;
if (isNaN(d))
d=0;
if(d>eval(TextBox34.value))
alert("此项评分不能超过该项最高分!");
self['TextBox5'].value = 0;
if (isNaN(e))
e=0;
if(e>eval(TextBox35.value))
alert("此项评分不能超过该项最高分!");
self['TextBox6'].value = 0;
sumValue = a+b+c+d+e;
self['TextBox46'].value =sumValue;
上面就是一段js,textbox2到6就是用户输入的分数,textbox31到35就是制定的最高分,不能超过,然后最下面有一个textbox46是上面输入分的和。chrome里面效果很不错,但是ie内核和firefox都不可用。求帮忙改一下,谢谢,没分了
您的这段代码主要有如下几个问题:
1、eval(TextBox2.value),您这样做应该是想做数据类型转换,但是如果您实际了解了eval的作用后会发现,其实您这么做是错误的;
2、self[\'TextBox3\'].value这个实在看不懂何意。是不是您定义了多个name相同的控件。
结合您的代码给您以下2点建议:
1、因为js是浏览器兼容性问题的高发区,因此建议考虑使用jQuery框架,利用其规避兼容问题;
2、即便不用框架,也请使用原生的dom对象,您这种奇怪的表达式对于阅读性和兼容性都有很大的伤害。
如果对我们的回答存在任何疑问,欢迎继续问询。 参考技术A self['TextBox46'].是什么用法?是自己封装的数组对象吗?追问
就是如果评分超过最高分把自己归零
追答if(a>eval(TextBox31.value),这行代码编译错误。少括号。
以上是关于写了一段js。在chrome里可用,但是在firefox和ie内核的浏览器不可以用。我知道是兼容性问题,帮改,见详细的主要内容,如果未能解决你的问题,请参考以下文章