2011-06-24 16 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コードは単純にすべてでは動作しません。これはちょうど2つの通常のテキストボックスを持っているかのようです。

+0

どのバージョンのInternet Explorerをテストしましたか? –

+2

「動作しません」と定義してください。 – deceze

+1

それについては何もしません –

答えて

4

の方法三番目のパラメータは、Firefoxで必要とされる

addEventListener 

では、それはイベントbublingのブール変数立っです。
あなたはこのように、addEventListenerを関数にブール引数を追加マスト

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

魅力のように動作し、仲間を歓迎します。 – Michael

0

このgetElementByIdが実際にname属性を持つフォーム要素を返すような場合の一つではなくidです探検私は、Firefox 3.6およびインターネットでそれをテストしていますか..?もしそうなら、ちょうど同じ値でid属性を追加し、再試行してください...

0

試すことができます:それは、ターゲット・ノードに向けてpropogatingされるイベントをバインドするかどうかを示す

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

ブール、(イベントキャプチャを)、またはイベントがターゲットから上方に泡立つ(イベントバブル)場合に発生します。 trueまたはfalseにそれぞれ設定します。

Read more about window methods

関連する問題