JeuWeb - Crée ton jeu par navigateur
[JS]pb compatibilité IE/FF - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [JS]pb compatibilité IE/FF (/showthread.php?tid=3930)



[JS]pb compatibilité IE/FF - Argorate - 26-04-2009

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?


RE: [JS]pb compatibilité IE/FF - jo_link_noir - 26-04-2009

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) ?


RE: [JS]pb compatibilité IE/FF - Argorate - 26-04-2009

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


RE: [JS]pb compatibilité IE/FF - jo_link_noir - 26-04-2009

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);
}



RE: [JS]pb compatibilité IE/FF - Allwise - 26-04-2009

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


RE: [JS]pb compatibilité IE/FF - Argorate - 27-04-2009

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?


RE: [JS]pb compatibilité IE/FF - jo_link_noir - 27-04-2009

Bah non, 48 c'est le 0 et 57 le 9, ça va pas si on fait un =


RE: [JS]pb compatibilité IE/FF - Argorate - 27-04-2009

Justement, je veux aussi le 0 et le 9, faut qu'il soit comprit dans l'intervale non?


RE: [JS]pb compatibilité IE/FF - jo_link_noir - 27-04-2009

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 ?


RE: [JS]pb compatibilité IE/FF - Argorate - 27-04-2009

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.