Exemple sophistiqué de saisie numérique

L'exemple qui suit montre un formulaire qui saisit une valeur (ici comprise entre 1 et 10) et traite cette saisie par une fonction (ici la fonction checkNumber, qui affiche un message si la valeur n'est pas correcte et qui retourne la valeur false si le chiffre n'est pas compris entre min et max).

<SCRIPT LANGUAGE="JavaScript">

// fonction verifiant comparant l`argument str 

// aux bornes min et max donnees en parametres

function checkNumber(str, min, max) {

    if (str == "") {

        alert("Saisissez un numero, s`il vous plait.");

        return false;

    }

    // Verification du contenu de la chaine de caracteres saisie

    // On examine un caractere a la fois

    for (var i = 0; i < str.length; i++) {

        var ch = str.substring(i, i + 1);

        if (ch < "0" || ch > "9") { 

            // presence d`un caractere autre que numerique

            alert("Saisissez un numero, s`il vous plait.");

            return false;

        }

    }

    // Conversion de la chaine de caracteres saisie

    // en un numero

    var num = 0 + str;

    

    // comparaison du numero avec les 

    // bornes min et max donnees en parametres

    if (num < min || num > max) {

        alert("Essayez un chiffre compris entre " + min + "  et " + max);

        return false;

    }

    return true;

} 

function thanks() {

    alert("Merci pour votre collaboration.");

}

</SCRIPT>

<FORM>

Saisissez une valeur numerique (suivie de TAB) : 

<INPUT NAME="num"

    ONCHANGE="if (checkNumber(this.value, 1, 10)) {thanks()}"

    VALUE="0">

</FORM>

<SCRIPT LANGUAGE="LiveScript">

document.write("<PRE>");

document.writeln("nom du champ: " 

                 + document.forms[0].num.name);

document.writeln("valeur du champ: " 

                 + document.forms[0].num.value);

document.write("</PRE>");

</SCRIPT>

Saisissez une valeur numerique (suivie de TAB) :