Domanda

Ho diversi pulsanti di radio che ottengono il loro valore dinamicamente. Quindi ho alcuni JavaScript che cattura i valori e li aggiunge in modo che vengano visualizzati bene in una casella di testo.

(Fondamentalmente come un calcolatore che aggiunge valori per un valore totale)

Ora, se qualcuno seleziona un altro pulsante di opzione, aggiunge comunque quel valore ma il valore dell'ultimo pulsante in quel gruppo non viene sottratto. Questo è quello che devo fare è sottrarre il deselezionato valore.

I miei valori di forma sembrano questo: "5/55" in cui 55 è il numero che sto usando per il mio valore. Il campo di testo che sto aggiornando si chiama "Notifica". Quindi vedi che sto aggiungendo correttamente il valore nel campo Notify con il valore del pulsante di opzione appena selezionato. Proprio come posso sbarazzarmi del vecchio valore quando uno nuovo viene selezionato in un gruppo?

Ecco il JavaScript che sto usando:

<script>
function eventTrigger (e) {
    if (! e)
        e = event;
    return e.target || e.srcElement;
}

function radioClick (e) {
    var obj = eventTrigger (e);
    var notify = document.getElementById &&
                    document.getElementById ('notify');
    if (notify)
    var partsArray = obj.value.split('/');
        notify.value = Number(notify.value) + Number(partsArray[1]);
    return true;
}
</script>

Grazie per tutto l'aiuto!

È stato utile?

Soluzione

Mantienilo semplice: ricalcola il risultato finale da zero ogni volta che qualcosa cambia. Mettere in giro con la sottrazione del vecchio valore può diventare davvero complesso molto rapidamente e non ne vale la pena, a meno che tu non abbia calcoli davvero complessi da eseguire che trarrebbero beneficio dallo speedUp. Pertanto, ogni volta che l'utente cambia una selezione, calcola la somma in base ai valori attualmente selezionati. Fatto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top