Slt.
Je cherche à contrôler la validité d'un numéro siren dans un formulaire. J'ai trouvé ce script (ci-dessous), mais il semble rejetter TOUS les numéros siren, y compris les valides...Qq pour mayday ?
Merci.
<html>
<head>
<title>test siren</title>
<script language="javascript">
<!--
/**
* @name EstSirenValide
*
* @param Le code SIREN dont on veut vérifier la validité.
*
* @return Un booléen qui vaut 'true' si le code SIREN passé en
* paramètre est valide, false sinon.
*/
function EstSirenValide(siren) {
var estValide;
if ( (window.document.form1.siren.length != 9) || (isNaN(siren)) ) {
estValide = false;
alert ("Votre code siren n'est pas valable. Veuillez le ré-entrer SVP. Merci");
window.document.form1.siren.focus();
}
else {
// Donc le SIREN est un numérique à 9 chiffres
var somme = 0;
var tmp;
for (var cpt = 0; cpt<window.document.form1.siren.length; cpt++) {
if ((cpt % 2) == 1) { // Les positions paires : 2ème, 4ème, 6ème et 8ème chiffre
tmp = siren.charAt(cpt) * 2; // On le multiplie par 2
if (tmp > 9)
tmp -= 9; // Si le résultat est supérieur à 9, on lui soustrait 9
}
else
tmp = siren.charAt(cpt);
somme += parseInt(tmp);
}
if ((somme % 10) == 0)
estValide = true; // Si la somme est un multiple de 10 alors le SIREN est valide
else
estValide = false;
alert ("Votre code siren n'est pas valable. Veuillez le réentrer SVP. Merci");
window.document.form1.siren.focus();
}
return estValide;
}
-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
SIREN
<form name="form1" method="post" action="" onsubmit="EstSirenValide(siren)">
<input type="text" name="siren" size="11" maxlength="9">
</form>
</body>
</html>