Bon,
je suis sincèrement désolé de continuer ce topic mais la je vois pas ce qui va pas :
En plus d'envoyer un message de confirmation pour continuer ou non l'opération que l'utilisateur est en train de faire, je voudrais aussi que l'utilisateur soit alerté du fait qu'il enfreint des lois qui lui empêchent d'accéder à la page suivante. On vérifie par exemple, qu'il rentre bien des chiffres et non des lettres, et on vérifie aussi si les chiffres rentrés sont bien croissants.
Mais alors là ca fonctionne pas du tout comme je le souhaite !
Voila comment je présente mon code :
Création du bouton submit
<input type=submit value="Édition d\'une fiche rapport" onClick="return nb_client()";/>
Fonction nb_client()
function nb_client()
{
if (checkTableauPuissance())
{
var nbclient=document.getElementById("nb_clients").value; //on récupère le nb de clients
var minimum=100000; //il est conseillé d'avoir des réponses sur au moins "minimum clients"
var message = "Le nombre total de clients correspondant à votre demande est très faible ("+(nbclient)+") .\nLes valeurs qui vous ont été préconisées de manière statistique risquent de ne pas être significatives.\nÊtes-vous sur de vouloir continuer ?";
if (nbclient<minimum)
{
var message_conf = confirm(message);
if (message_conf)
{
//document.changerform.submit();
return true;
}
else
{
return false;
}
}
}
}
Et voici la création des fonctions qui sont appelées par la fonction CheckTableauPuissance():
function checkTableauPuissance(){
var arrayElement = new Array();
var output=true;
if(elementExists("in_moyenne_pte")){
arrayElement.push(document.getElementById("in_moyenne_pte"));
}
if(elementExists("in_moyenne_hph")){
arrayElement.push(document.getElementById("in_moyenne_hph"));
}
if(elementExists("in_moyenne_hpd")){
arrayElement.push(document.getElementById("in_moyenne_hpd"));
}
if(elementExists("in_moyenne_hch")){
arrayElement.push(document.getElementById("in_moyenne_hch"));
}
if(elementExists("in_moyenne_hcd")){
arrayElement.push(document.getElementById("in_moyenne_hcd"));
}
if(elementExists("in_moyenne_hpe")){
arrayElement.push(document.getElementById("in_moyenne_hpe"));
}
if(elementExists("in_moyenne_hce")){
arrayElement.push(document.getElementById("in_moyenne_hce"));
}
if(elementExists("in_moyenne_ja")){
arrayElement.push(document.getElementById("in_moyenne_ja"));
}
for(var i=0; i<arrayElement.length-1; i++){
if(!is_numeric(parseInt(arrayElement[i].value)) || !is_numeric(parseInt(arrayElement[i+1].value))){
alert("Les puissances préconisées doivent être de type numérique.");
//return false;
var output = false;
}
else if(parseInt(arrayElement[i].value) > parseInt(arrayElement[i+1].value)){
alert("Les puissances préconisées doivent être croissantes.");
//return false;
var output = false;
}
}
return output;
//else return true;
//alert("nombre d'ele : "+arrayElement.length);
}
function is_numeric(input){
return typeof(input)=='number';
}
function elementExists(id){
var ele = document.getElementById(id);
return (ele != null);
}
En fait, mon problème c'est que ma fonction marche toujours, mais si jamais je recois un message qui me dit : Les puissances préconisées doivent être croissantes, je clique sur OK et la je passe à l'étape suivante. Alors que ca ne devrait pas !