hellworld
Messages postés8Date d'inscriptionjeudi 8 juillet 2010StatutMembreDernière intervention14 février 2011
-
8 oct. 2010 à 10:58
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
9 oct. 2010 à 18:53
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 !
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;
}
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 8 oct. 2010 à 14:45
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;
}
}