View Full Version : [Javascript] Aggiungere o sottrarre un valore ad un innerHTML
ho un campo div in cui c'è un prezzo in euro.
L'utente selezionando dei checkbox va ad aggiungere un tot di euro al prezzo finale. Il prezzo viene aggiornato il real time, quindi al prezzo nel div devo aggiungere il prezzo della checkbox.
Ho provato con += ma mi considera le variabili come stringhe e quindi le concatena.
<span id="total_price"></span>
function add(priceSupp, checkbox){
if (checkbox.checked) {
document.getElementById("total_price").innerHTML += formatCurrency(priceSupp);
}
if (checkbox.checked === false) {
document.getElementById("total_price").innerHTML -= formatCurrency(priceSupp);
}
}
ho un campo div in cui c'è un prezzo in euro.
L'utente selezionando dei checkbox va ad aggiungere un tot di euro al prezzo finale. Il prezzo viene aggiornato il real time, quindi al prezzo nel div devo aggiungere il prezzo della checkbox.
Ho provato con += ma mi considera le variabili come stringhe e quindi le concatena.
<span id="total_price"></span>
function add(priceSupp, checkbox){
if (checkbox.checked) {
document.getElementById("total_price").innerHTML += formatCurrency(priceSupp);
}
if (checkbox.checked === false) {
document.getElementById("total_price").innerHTML -= formatCurrency(priceSupp);
}
}
prova con la Eval
if (checkbox.checked) {
var tmp = document.getElementById("total_price").innerHTML;
var res = eval(tmp)+formatCurrency(priceSupp);
document.getElementById("total_price").innerHTML = res;
}
etc.
Mai usare eval se non è strettamente necessario, e in questo caso non è assolutamente necessario, probabilmente non ti troverai mai costretto ad usare eval.
Puoi mantenere una variabile(numerica) che contenga il totale, e il prezzo della checkbox lo converti in int con parseInt(stringa,10).
Mai usare eval se non è strettamente necessario, e in questo caso non è assolutamente necessario, probabilmente non ti troverai mai costretto ad usare eval.
Puoi mantenere una variabile(numerica) che contenga il totale, e il prezzo della checkbox lo converti in int con parseInt(stringa,10).
Se e' per questo, mai usare JavaScript.
prova con la Eval
if (checkbox.checked) {
var tmp = document.getElementById("total_price").innerHTML;
var res = eval(tmp)+formatCurrency(priceSupp);
document.getElementById("total_price").innerHTML = res;
}
etc.
non funziona. Mi aggiunge un 0 e non fa la somma.
Es. se devo aggiungere 323. mi scrive 0323
Se e' per questo, mai usare JavaScript.
... :rolleyes:
non funziona. Mi aggiunge un 0 e non fa la somma.
Es. se devo aggiungere 323. mi scrive 0323
Puoi mantenere una variabile(numerica) che contenga il totale, e il prezzo della checkbox lo converti in int con parseInt(stringa,10).
Mi sembra il suggerimento corretto.
Se sei sicuro che l'innerHtml sia sempre numerico fai la somma parsandoInt l'innerhtml e il valore della checkbox.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.