JeuWeb - Crée ton jeu par navigateur

Version complète : [JS]pb compatibilité IE/FF
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour, j'ai actuelement besoin d'une petite fonction JS qui empeche de saisir autre chose que des chiffre dans des input text:

Code :
function CharEvent(e)
{
    if(window.event) // pour IE
    {
        char = String.fromCharCode(e.keyCode);
        if(e.keyCode == 0);
            char = "5";
        return char;
    }
    else // pour NS et FF
    {
        char = String.fromCharCode(e.charCode);
        if(e.charCode == 0)
            char = "5";
        return char;
    }
}

function QueNum(e)
{
    char = CharEvent(e);
    if((char < "0" || char > "9"))
    {
        return false;
    }
    return true;
}

et mon appel :
Code :
<input class="champ_txt" type="text" name="solde" size="10" onKeyPress="return QueNum( event );">

Cela marceh très bien sous FF mais pas sous IE, des suggestions?
Bonjour


function CharEvent(e)
{
ascii = window.event ? e.keyCode : e.which;
return (ascii == 0) ? "5" : String.fromCharCode(ascii);
}

function QueNum(e)
{
return isNaN(CharEvent(e));
}

Pour savoir, à quoi sert le if(e.charCode == 0) ?
Ce n'est pas mon code, j'ai trouvé ça en cherchant vite fait sur le net Wink
J'ai la flemme de chercher le numéro de chaque touche du clavier...

Je vais tester ton code, je te dirais si ça marche Wink
Les touches sont en code ascii, suffit d'avoir un tableau sous les yeux pour savoir quel touche correspond à quel code ascii.

Au final tu pourrais réduire le code à

function QueNum(e)
{
ascii = window.event ? e.keyCode : e.which;
return (ascii < 48 || 57 < ascii);
}
Bien vu j-12. Ce serait plutôt :
Code :
return (ascii >= 48 && ascii <= 57 );

Sinon Argo, tu aurais quand même pu chercher à comprendre ce que faisait ton script avant de demander de l'aide, espèce de flemmard Smile
Effectivement c'est (>= 48 && <=57), j'ai testé et cela ne marche pas du tout, cela bloque les caractères numériques justement... Donc je pense pas que se soit au point votre truc.

Mais personne n'aurais une idée vis-à-vis du code original?
Bah non, 48 c'est le 0 et 57 le 9, ça va pas si on fait un =
Justement, je veux aussi le 0 et le 9, faut qu'il soit comprit dans l'intervale non?
Ah oui, exacte, j'étais rester sur "autre chose que des chiffres" alors j'ai pas fait gaffe '^.^
Mais ça marche pas pour ie le truc ?
En faite c'est parceque tu as mal écrit le if (enfin c'est que tu a mis le second terme dans l'autre sens par rapport au premier, c'est pour ça que je me suis embrouillé)...
(ascii >= 48 && ascii <= 57) c'est ça la bonne condition... Wink

EDIT: mais voyez vous le probleme, par rapport a me code original, c'est que là, les fléches, le suppr, ou le retour en arriere ne fonctionne pas, et j'ai besoin que c'est touche sois validé, je vias allez voir sur le tableau ascii

EDIT2: c'est règlé! Wink


Merci.