Mise a jour d'un champ d'après une checkbox [Résolu]

Signaler
Messages postés
8
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
14 février 2011
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour, j'ai sur mon site un calculateur de devis qui met a jour un champ en live selon des checkbox.
Le script fonctionne sous IE mais pas sous Firefox ou safari et je ne comprend pas pourquoi.

Est-ce que quelqu'un peu m'aider svp ? ca doit pas etre bien compliqué pourtant !

La page est question est : http://www.antares-sys.com/devis.php

Le check box est défini de cette facon :
 Création d'un site "basique"     [# + d'info]
blabla



et la fonction maj :

function maj(valeur,option) 
{
var total = new Number;

total = document.getElementById('total').value;
    if (document.getElementById(option).checked == false) 
document.getElementById('total').value = total - valeur;
else 
document.getElementById('total').value = parseInt(total) + valeur;
}



merci beaucoup pour votre aide !
David

3 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
Bonjour,
fonctionne sous IE mais pas sous Firefox ou safari
c'est un classique avec les NAMEs sans IDs
dans la ligne
if (document.getElementById(option).checked == false)

tu cherches l'élément qui a pour ID option, mais tes contrôles n'ont qu'un NAME, seul IExplorer en absence d'ID cherche si un NAME correspond, pas les autres qui sont plus stricts...

- Solution #1 mettre une ID à tes contrôles
- Solution #2 passer l'élément en paramètre à ta fonction
//----------------------------
function maj(valeur, element) {
  var total = new Number;
  total = document.getElementById('total').value;
  if (element.checked == false) {
    document.getElementById('total').value = total - valeur;
  } else {
    document.getElementById('total').value = parseInt(total) + valeur;
  }
}

et l'appel à ta fonction devient
on met this à la place du NAME.


;O)
Messages postés
8
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
14 février 2011

Merci beaucoup ca marche nickel avec l'ID.. c'était effectivement tout con !
Bon week-end a tous.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
Bonjour,
penses à mettre réponse Acceptée! pour les autres...

;O)