2011-06-24 58 views
0

我有这样的代码,但我只能得到它的互联网工作探索 - 它不工作在Firefox:为什么不能在Firefox上使用?

var max1box = document.getElementById('length'), 
    max2box = document.getElementById('width'); 
    max1 = 100; 
    min1 = 20; 
    max2 = 200; 
    min2 = 10; 

max1box.addEventListener('change',validateValues); 
max2box.addEventListener('change',validateValues); 

function validateValues() { 

    if (this == max1box && this.value > max1 && this.value > max2box.value) 
    { 
     max1box = max2box; 
     max2box = this; 
    } 

    if (max1box .value > max1) { 
     max1box .value = max1; 
    } 
    if (max1box .value < min1) { 
     max1box .value = min1; 
    }   

    if (max2box.value > max2) { 
     max2box.value = max2; 
    } 
    if (max2box.value < min2) { 
     max2box.value = min2; 
    } 
    } 

http://jsfiddle.net/gdau4/

的JavaScript代码只是简单地完全不工作。就好像我刚刚有两个正常的文本框。

我已经在Firefox 3.6和Internet测试它浏览9

+0

您测试过哪个版本的Internet Explorer? – 2011-06-24 07:16:28

+2

请定义“不起作用”。 – deceze

+1

whats not about about –

回答

4

在方法

addEventListener 

第三个参数在Firefox中是必需的,它是事件bubling布尔变量的地位。
您可以尝试

max1box.addEventListener('change',validateValues,false); 
max2box.addEventListener('change',validateValues,false); 
+0

工程就像一个魅力,欢呼队友。 – Michael

0

这是一个在哪里getElementById实际上是用name属性返回一个表单元素的情况下,但不是id ..?如果是这样,只需添加一个id属性具有相同的值,然后再试一次......

0

你肥大布尔变量增加对addEventListener的功能,如:

max1box.addEventListener('change', validateValues, false); 

布尔指示是否因为它是朝着目标节点propogating绑定事件,(事件捕获),或者当事件从目标(事件泡泡)向上冒泡时。分别设置为true或false。

Read more about window methods

相关问题