cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009
-
30 avril 2005 à 11:05
GhislainLavoie
Messages postés289Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention 3 avril 2008
-
2 mai 2005 à 23:46
Bonjour, j'ai un probleme comme vous pouvez vous en douté, mais je sais, le titre du sujet est pas bien !
En fait, je voudrais faire un truc avec un nombre de point inital et
que l'on ne peut pas changer et plusieur bouton + et - qui baisse ou
"augmente" (elle ne doit pas dépasser la valeur initial).
Lorsque l'on ajoute, ca baisse la valeur et lorsque l'on enlève c'est augment la valeur.
En fait, c'est plusieur champ qui doivent avoir des point et lorsque
l'on met un point, ca baisse la valeur initial de 1. Et il faudrait
aussi que à la fin, l'utilisateur valide et je doit pouvoir recupérer
ces champs.
Merci de m'aider et j'espère que vous avez compris mon pb sinon dites le moi et j'essaiyerais d'être plus clair!
GhislainLavoie
Messages postés289Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention 3 avril 20083 2 mai 2005 à 23:46
Salut!
Je ne suis pas certain d'avoir tout compris mais si ton problème #1 est le IF dans la fonction valid, c'est que tu essais de comparer la valeur d'un élément de formulaire et l'attribut .value, retourne une chaîne de caractères donc la comparaison s'effectue de gauche a droite caractère par caractère. Il faut convertir en nombre pour comparer des nombres. On peut utiliser la fonction parseInt ou ici dans ton cas on est certain que la valeur est numérique alors on peut utiliser un eval().
Le problème #2 c'est problablement un problème d'utilisation trop fréquente de drogue
Si il se passe rien après le boutton alert c'est que tu ne fait rien. Si tu veux que le résultat soit envoyé a ton php, il faut faire un submit du formulaire.
function valid(form)
{ if (eval(form.max.value) < eval(form.total.value)) alert("Vous avez entrer " + form.total.value + " points alors que la limite est de " + form.max.value);
else
{ alert("Repartition de vos points : \n Attaque : " + form.attaque.value + "\n" + "Defense : " + form.defense.value + "\n" +"Vitesse : " + form.vitesse.value + "\n"+"Perception : " + form.perception.value + "\n" + "Ki : " + form.ki.value + "\n" + "Vie :" + form.vie.value*80 );
form.submit();
} }
GhislainLavoie
Messages postés289Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention 3 avril 20083 30 avril 2005 à 17:42
Salut!
Voici un exemple :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<STYLE type= "text/css">
. nombre {text-align:right;} .plusMoin {width:25px;font-weight:bold;} </STYLE>
<SCRIPT type ="text/javascript">
function changeValeur(nbr,val)
{ t = eval(nbr.value);
if (nbr.valeurInitial==null) nbr.valeurInitial = t;
t = t + val;
nbr.value = t<=nbr.valeurInitial?t : nbr.value;
} function valid(laValeur)
{ alert(laValeur);
} </SCRIPT>
</head>
cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009 30 avril 2005 à 19:16
re, j'ai esasyer d'adapté mon script à la situation mais j'ai été totalement perdu ! je suis désolé !
En fait, moi j'ai plusieur champs (Attaque, Defense etc ..) et je veux
quand on ajoute un + dans attaque, ca fasse moins -1 au point totaux et
+ 1 au point de defense !
cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009 30 avril 2005 à 22:01
Excuse moi mais je suis tres nul en javascript et ce que tu m'a donné ne marche pas !
Lorsque je fait + au attaque et defense ca marche pas lorsque elle sont
à 0 ! quand elle sont négative, ca marche ! Il faudrait que quand je
fait + à l'attaque il y ait + à l'attaque mais - au totale et pareil
pour les autres !
Il faut aussi que le total soit compris entre 0 et sa valeur max
(donné au debut) et les autres ne doivent pas être negative non plus !
GhislainLavoie
Messages postés289Date d'inscriptionvendredi 11 mars 2005StatutMembreDernière intervention 3 avril 20083 30 avril 2005 à 23:10
Salut!
Pas certain d'avoir compris!
Le seul problème que je vois c'est le montant qui tombent en négatif. Pour régler ça, tu dois changer la fonction comme ceci :
function changeValeur(nbr,val)
{ t = eval(nbr.value);
if (nbr.valeurInitial==null) nbr.valeurInitial = t;
t = t + val;
if (t>nbr.valeurInitial || t<0) return ; nbr.value = t;
if (nbr.name != "total") changeValeur(document.forms[0].total,val)
}