Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2527 connectés 

 


Dernière réponse
Sujet : Pourquoi tant de haine!???
youdontcare :D

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
youdontcare :D
Thocan Trop bien!  :jap:  
 
C'est même plus drôle, là! Tout semble si facile...  :D  
 
J'aurai p'tet dû me mettre à la programmation, moi! Ca m'aurait sûrement aidé...  :lol:  
 
Merci encore une fois...  :love:
youdontcare haaa ! c'est tout de suite plus simple quand tu expliques :D
 
ce n'est pas faisable en 'vanilla' javascript, il faut en fait construire le nom de la variable dans une string et la passer à eval() qui va la récupérer (eval() éxécute du code javascript dans une string, donc lui passer le nom d'un élément va chopper l'élément en question).
 
donc :  
var str = 'document.mailto.Total' + box;
// si box vaut '01' et que tu fais un alert(str), tu dois obtenir document.mailto.Total01
// maintenant, tu récupères l'objet :
var n = eval(str);
// en faisant alert(n.value) tu dois obtenir la valeur de l'input Total01
// à partir de là, tu n'as plus qu'à utiliser ton code standard :
 
var w = parseFloat(n.value);
if (isNaN(w)) w = 0;
 
etc.
Thocan En fait, la fonction doit être lancée sur différents champs (TotalN : Total1, Total2 etc...)
Donc je voulais tout réunir en une seule ligne, plutôt que de faire des if successifs (qui marchent, j'ai testé).
 
Donc ma fonction est appelée avec box = numéro du Total concerné (ex : 10 pour Total10)
Je veux donc que la fonction fasse le parseFloat sur Total10, mais le 10 est généré par la varaible box.
 
Effectivement, j'ai obtenu une concatenation (ce que je voulais), ie "document.mailto.Total10", mais la suite ne fonctionne pas.  :heink:  :D
youdontcare var w = document.mailto.Total + box;  
 
document.mailto.Total est un pointeur vers l'input de nom mailto
 
box = ?
 
tu essayes d'additionner un pointeur et autre chose, ça ne peut que planter, au mieux concaténer deux strings (les deux représentations internes des objets) pour donner qq chose comme '[object]?'
 
donc :  
 
qu'est-ce que tu veux faire ? pour récupérer une valeur float d'un input, tu DOIS passer par le parseFloat(....value) puis le test isNaN(). ensuite tu peux travailler avec la valeur.

 

[jfdsdjhfuetppo]--Message édité par youdontcare--[/jfdsdjhfuetppo]

Thocan Tiens... de nouveau un problème (m'aurait étonné... :sarcastic: )
 
------------------------
function ajout_total(test,box) {
var w = document.mailto.Total + box;
var u = parseFloat(w.value);  

if (isNaN(u)) u = 0;
if (test==true) u += 0.5;
if (test==false) u -= 0.5;
return u;
}
--------------------
Cette fonction marche très bien si je mets 'Total + box' en fixe (par exemple Total10), mais pas lorsque je veux lui associer une variable.
Visiblement w.value est mal compris...
youdontcare :hello:
Thocan Vi, ça fonctionne nickel !  :bounce:
 
Un graaaaaaand merci pour ton aide!  :love:

 

[jfdsdjhfuetppo]--Message édité par Thocan--[/jfdsdjhfuetppo]

youdontcare c'est bon alors ?
Thocan Ha ok, je sais pourquoi : c'est le onChange qui fait ça.
Avec onClick, ça se passe normalement.
Thocan Ben le résultat de la fonction n'est affiché qu'après un autre click (n'importe où sur la page)
 
je sais pas pourquoi...
youdontcare le temps de retard ? pour ce genre de trucs ça devrait être instantané !
Thocan Yeap ça fonctionne!
 
Je pense pouvoir m'en sortir avec tout ça...
 
Il me reste plus, je crois, que le temps de retard à l'affichage, mais je doute qu'il existe une solution...  :(
Thocan ok, merci, je vais essayer...  :jap:
youdontcare <input type='checkbox' onclick='sendValue(this.checked)'>
 
avec sendValue qui ressemble à :
 
function sendValue(s)
{
  document.mailto.Total.value = s;  
}
 
par exemple ... tu n'es pas obligé de passer par une fonction  (mais je préfère).
Thocan Vu que je suis au boulot, je vais avoir du mal à te filer le fichier...
 
Par contre, et après je te laisse tranquille ( ;) ), sais-tu comment envoyer dans la fonction OnClick (ou une autre) le statut de la checkbox? (checked ou unchecked)
 
Merci
youdontcare tu devrais plutôt sortir le code html sorti par php.  
 
ceci dit, je n'ai jamais utilisé onChange="Total.value=ajout()"> .
 
* j'utilise habituellement onpropertychange (microsoft only par contre)
 
* Total.value = xxx n'est peut-être pas compris, essaye document.mailto.Total.value = xxx
 
ou mieux, file un lien sur une page qui duplique le problème.
Thocan [citation
Par contre, ce qui est bizarre, c'est que la fonction ne marche que lors du deuxième checkbox cliqué.
Le premier ne fait rien...  :??:  
[/citation]
 
En fait, la fonction est bien activée, mais le résultant n'est pas affiché tant qu'une autre action n'a pas été faite.
 
Chiant, ça.  :(
Thocan Ok, je vais essayer...  :D  
--------------------------------
J'ai ma fonction ajout :
<script>
function ajout() {
var v = parseFloat(document.mailto.Total.value);  
if (isNaN(v)) v = 0.5;
v += 0.5;
return v;    
}
</script>
-------------------------------
Ensuite, mes checkbox sont créées en php :
 
<input type=\"checkbox\" name=J".$i."AM onChange=\"Total.value=ajout()\"><input type=\"checkbox\" name=J".$i."PM value=0>
 
Un grand merci pour ton aide!  ;)
youdontcare montre un peu ton code, je suis pas devin :D
Thocan <script>
function ajout() {
var v = parseFloat(document.mailto.Total.value);  
if (isNaN(v)) v = 0;
v += 0.5;
return v;    
}
</script>
----------------------
Ce code là marche! Merci!  :bounce:  
 
Par contre, ce qui est bizarre, c'est que la fonction ne marche que lors du deuxième checkbox cliqué.
Le premier ne fait rien...  :??:
youdontcare il n'y a pas de variable 'value' pour les checkbox. dans un input texte, 'value' est la valeur du champ. dans une checkbox, 'checked' indique si on a coché la checkbox. c'est mutuellement exclusif je pense ...
Thocan Pour les checkbox, y'a les propriétés :
- name : ok, je comprends...  :)  
- value  
- checked
Quelle est la différence entre les deux derniers?
 
Sinon, je teste ton code
youdontcare

Thocan a écrit a écrit :

En fait, ce que j'essaie (désespéremment?) de faire : lorsque je cliques sur certains checkbox, m'incrémenter automatiquement par pas de 0,5 la valeur du champ "Total" de mon formulaire.
 
Visiblement, pas défaut, c'est la valeur vide "".


he bien déjà met une valeur par défaut réelle.
 
sinon tu testes ça en code :
 
var v = parseFloat(document.mailto.Total.value);  
if (isNaN(v)) v = 0;
v += 0.5;
document.mailto.Total.value = v;

Thocan

youdontcare a écrit a écrit :

que vaut document.mailto.Total.value ? (à l'espace près)  




 
En fait, ce que j'essaie (désespéremment?) de faire : lorsque je cliques sur certains checkbox, m'incrémenter automatiquement par pas de 0,5 la valeur du champ "Total" de mon formulaire.
 
Visiblement, pas défaut, c'est la valeur vide "".

 

[jfdsdjhfuetppo]--Message édité par Thocan--[/jfdsdjhfuetppo]

youdontcare que vaut document.mailto.Total.value ? (à l'espace près)
Thocan

youdontcare a écrit a écrit :

var a = parseInt(document.mailto.Total.value) + 0.5;  
 
oui, le fait que '+' soit utilisé pour l'addition et la concaténation de strings est assez chiant.  




 
Il me sort un "NaN"....  :??:

dragonsphax

youdontcare a écrit a écrit :

var a = parseInt(document.mailto.Total.value) + 0.5;  
 
oui, le fait que '+' soit utilisé pour l'addition et la concaténation de strings est assez chiant.  




 
ha je savais bien ke ct a cause de ta variable  document.mailto.Total.value que ca merdiat...mais je connait pas trop je javascript....
merci a youdontcare pour cette info.. [:the radec]

youdontcare var a = parseInt(document.mailto.Total.value) + 0.5;  
 
oui, le fait que '+' soit utilisé pour l'addition et la concaténation de strings est assez chiant.
Thocan javascript only...  :D
Thocan

DragonSphax a écrit a écrit :

var a = document.mailto.Total.value;
a += 0,5;    
return a;
 




 
Il me sort :
0.50.50.50.5...

Thocan vi, j'ai déjà essayé.
Apparemment, il doit me détecter mon 'a' comme une chaine de texte.
Comment faire pour le définir comme un nombre?
dragonsphax var a = document.mailto.Total.value;
a += 0,5;    
return a;
 
 
---> si document.mailto.Total.value vaut 0 c normal que ca te retourne toujours 0,5....t'es sur de ton nom de var la?
dragonsphax t'as essayer en faisant a=a+0.5 deja????
Thocan Pourquoi, mais pourquoi donc cette fonction s'obstine-t-elle à me concaténer mes valeurs plutôt que mes aditionner???   :??:  
---------------------------
<script>
function ajout() {
var a = document.mailto.Total.value;
a += 0,5;    
return a;
}
</script>";
---------------------------
Ca me donne : 0,50,50,5...
 
Please Help! C'est assez urgent!  :sweat:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)