Ho cercato di aggiornare un prezzo totale quando qualcuno cambia l'opzione di selezione. Ecco l'elemento di selezione che sto utilizzando:Perché non funziona la mia istruzione CoffeeScript if/else?
<select id="payment_talks_purchased" name="payment[talks_purchased]">
<option value="1">One</option>
<option value="2">Three</option>
</select>
Questo è il jQuery che sto usando:
jQuery(document).ready(function() {
var price = $(".total-price span.price")
var save = $(".savings")
$("#payment_talks_purchased").change(function() {
var selection = $("#payment_talks_purchased").val()
if (selection == 2) {
price.html("$12");
save.css("visibility", "visible");
} else if (selection == 1) {
price.html("$5");
save.css("visibility", "hidden");
}
});
});
Funziona perfettamente. Cambia il prezzo a $ 12 e mostra il messaggio di sconto. Se cambio di nuovo l'opzione select su One/1, il testo torna a $ 5 e rimuove il messaggio di sconto.
ho convertito questo per CoffeeScript ma funziona solo quando faccio il primo cambiamento. Il prezzo è aggiornato. Tuttavia, quando provo a cambiarlo nuovamente all'opzione 1, non si aggiorna.
jQuery ->
price = $(".total-price span.price")
save = $(".savings")
select = $("#payment_talks_purchased")
select.change ->
selection = select.val()
if selection = 2
price.html "$12"
return save.css "visibility", "visible"
else if selection = 1
price.html "$5"
return save.css "visibility", "hidden"
Ho lavorato su questo per ore e sono alla fine del mio ingegno. Qualsiasi aiuto sarebbe molto apprezzato.
Esattamente. Usa 'selection = + select.val()' se vuoi convertire l'input del form in un numero. –
Grazie mille per il vostro aiuto. Questo ha fatto il trucco. –
Non è 'is' preferito per il confronto, a meno che non si desideri attivare esplicitamente la coercizione di tipo? – jpmc26