Javascript SCRIPT5007:无法设置属性的值';值';:对象为null或未定义
我在网站上有以下JS费用计算器:Javascript SCRIPT5007:无法设置属性的值';值';:对象为null或未定义,javascript,internet-explorer,Javascript,Internet Explorer,我在网站上有以下JS费用计算器: 函数updateOutput(){ //形成 var form=document.getElementById('calc'); var x=form.elements['x'].value; x=x。替换(/,/g,“”); //确定乘数 如果(x>11111&&x=83333&&x=166667&&x=250000){ y=0.005; } //添加数据插件 if(form.elements['pd'].checked==true){ p=250; } 否
函数updateOutput(){
//形成
var form=document.getElementById('calc');
var x=form.elements['x'].value;
x=x。替换(/,/g,“”);
//确定乘数
如果(x>11111&&x<83333){
y=0.009;
}
如果(x>=83333&&x<166667){
y=0.007;
}
如果(x>=166667&&x<250000){
y=0.006;
}
如果(x>=250000){
y=0.005;
}
//添加数据插件
if(form.elements['pd'].checked==true){
p=250;
}
否则{
p=0;
}
//计算每月价格
如果(x>11111){
form.elements['z'].value=Math.round(eval(parseInt(x,10)*y+p));
}
否则{
form.elements['z'].value=Math.round(eval(100+p));
}
}
如果您输入“12000”(或大于11111的数字),它将在FF、Chrome和Safari中正确计算
我无法让它在IE中工作。输入值后,它会抛出以下错误:
SCRIPT5007:无法设置属性“value”的值:对象为null或未定义
我已经多次看到这个错误,但是所有的解决方案都与.Net或嵌入Flash有关
任何帮助都将不胜感激…提前感谢 IE似乎没有在
表单中包含元素。元素
集合,因此表单。元素['z']
在IE中是未定义的(如果单击链接,您将看到
在IE10之前不受支持)。其他浏览器在元素
集合中包含
要么将z
设置为只读
,要么给你的
一个id
,然后与文档一起获取。getElementById
挑剔:你应该使用否则如果。
function updateOutput() {
//get form
var form = document.getElementById('calc');
var x = form.elements['x'].value;
x = x.replace(/,/g, "");
// determine multiplier
if (x > 11111 && x < 83333) {
y = 0.009;
}
if (x >= 83333 && x < 166667) {
y = 0.007;
}
if (x >= 166667 && x < 250000) {
y = 0.006;
}
if (x >= 250000) {
y = 0.005;
}
// add data addon
if (form.elements['pd'].checked === true) {
p = 250;
}
else {
p = 0;
}
// calculate monthly price
if (x > 11111) {
form.elements['z'].value = Math.round(eval(parseInt(x, 10) * y + p));
}
else {
form.elements['z'].value = Math.round(eval(100 + p));
}
}