Bonjour tout le monde.

Sur un onBlur je veux que si le texte entré n'est pas un nombre, il colorise la bordure de mon input en rouge. Le script fonctionne sous IE6 mais pas sous FireFox.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
 
 
var myInputText = document.getElementById('InputNumber');
 
if(myInputText != null)
{
   myInputText.onblur = function(){ChangeColor(myInputText) };
}
 
function ChangeColor(myInputText)
{
 
var colorForBorder = '#D0D0D0';
 
if(isNaN(myInputText.value))
{
 
//On fait un focus dessus
setTimeout(function() { myInputText.focus(); }, 10);
 
//La couleur de la bordure sera rouge
colorForBorder = 'red';
}
 
//J'ai rajouté la comparaison IE/FF après avoir constaté que cela ne fonctionnait pas sous FireFox
if (myInputText.currentStyle) {
 
                //IE
                myInputText.style.borderColor = '';
                myInputText.style.borderColor = colorForBorder ;
 
            }
            else if (window.getComputedStyle) {
 
                //FF
                document.defaultView.getComputedStyle(myInputText, null).borderColor = colorForBorder ;
            }
 
//Je teste si on est sur IE avec currentStyle ou sur FireFox avec getComputedStyle
//Sous IE ça fonctionne parfaitement mais sous FireFox, à moitié. En effet, dès que j'ai une erreur, il colore bien le border de l'input en rouge, mais, quand je veux modifier, que je mets un bon nombre et que je sors de l'input, la couleur ne se remet pas à '#D0D0D0'
 
}
Merci pour l'aide ^^.