Почему это не работает в Firefox? - PullRequest
0 голосов
/ 24 июня 2011

У меня есть этот код, но я могу заставить его работать только в Internet Explore - он не работает в 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.

Ответы [ 3 ]

4 голосов
/ 24 июня 2011

В методе

 addEventListener

Третий параметр требуется в Firefox, и это булева переменная, обозначающая всплывающее событие.
Вы можете попробовать

 max1box.addEventListener('change',validateValues,false);
 max2box.addEventListener('change',validateValues,false);
0 голосов
/ 24 июня 2011

Вы должны добавить логические аргументы в функции addEventListener, например:

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

Логическое значение, указывающее, следует ли привязывать событие, когда оно распространяется к целевому узлу (захват события), или как событие всплывающеевверх от цели (пузырь событий).Установите значение true или false соответственно.

Подробнее о методах окна

0 голосов
/ 24 июня 2011

Является ли это одним из тех случаев, когда getElementById фактически возвращает элемент формы с атрибутом name, но не id ..? Если это так, просто добавьте атрибут id с тем же значением и повторите попытку ...

...