2010-12-01 7 views
0

J'ai ce code JavaScript simple. Le commutateur n'est pas exécuté, pour une raison quelconque, ce qui est un mystère pour moi! Quelle erreur stupide ai-je faite?Commutateur JavaScript non exécuté

function hndlEv (e) 
{ 
    switch (document.forms[0].zcode.length) 
    { 
     case 1: document.forms[0].zcode.style.backgroundColor = "ffcc33"; break; 
     case 2: document.forms[0].zcode.style.backgroundColor = "ffff33"; break; 
     case 3: document.forms[0].zcode.style.backgroundColor = "ccff33"; break; 
     case 4: document.forms[0].zcode.style.backgroundColor = "66ff33"; break; 
     case 5: document.forms[0].zcode.style.backgroundColor = "00ff33"; break; 
    } 
} 
... 
<body onload="setfocus();" onkeypress="hndlEv(event);"> 
... 
<input type="text" name="zcode" size="6" maxlength="6" class="code" /> 
+0

Est-ce que ça va cette méthode? –

Répondre

1
function hndlEv (e) 
{ 
    switch (document.forms[0].zcode.value.length) 
    { 
     case 1: document.forms[0].zcode.style.backgroundColor = "ffcc33"; break; 
     case 2: document.forms[0].zcode.style.backgroundColor = "ffff33"; break; 
     case 3: document.forms[0].zcode.style.backgroundColor = "ccff33"; break; 
     case 4: document.forms[0].zcode.style.backgroundColor = "66ff33"; break; 
     case 5: document.forms[0].zcode.style.backgroundColor = "00ff33"; break; 

    } 
} 

Essayez cette

+0

S'il vous plaît, d'abord (au moins): 'var zcode = document.forms [0] .zcode' puis ...' zcode.value.length', etc. Il est vraiment difficile de voir votre changement à la valeur sélectionnée. (Bien que par souci de l'affiche, je ferais le sélectionner et définir un processus en deux étapes, et peut-être utiliser une recherche et non un commutateur ...) –

2

Vous avez une faute de frappe. hEv() n'est pas la même chose que hndlEv().

+0

Désolé, cela aussi. Mais le champ d'entrée ne change toujours pas sa couleur. – Bakudan