繁体   English   中英

为什么这在Firefox上不起作用?

[英]Why doesn't this work on Firefox?

我有以下代码,但只能在Internet Explorer中使用它-在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 Explore 9中对其进行了测试。

在方法中

 addEventListener

在firefox中,第三个参数是必需的,它是一个代表事件冒泡的布尔变量。
你可以试试

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

这是getElementById实际上返回具有name属性而不是id ..的表单元素的情况之一吗? 如果是这样,只需添加具有相同值的id属性,然后重试...

您可以将布尔参数添加到addEventListener函数,如下所示:

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

布尔值,指示是在事件向目标节点传播时绑定事件(事件捕获),还是事件从目标冒泡向上绑定(事件冒泡)。 分别设置为true或false。

阅读有关窗口方法的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM