Ciao
Risposta breve: nella tua pagina togli i commenti dagli span dove ci sta il prezzo.
io... ma solo 5 minuti per capire dove stava il problemaOriginariamente inviata da ciro78
Risposta estesa:
Ho giocato un po' sulla pagina e spulciato nello script per verificare dove sta e cosa fa la funzione usata per aggiungere gli articoli al carrello.
Di fatto tale funzione (addToCart) si basa sul prezzo che è riportato sulla pagina, o meglio, preleva letteralmente il contenuto testuale che sta dentro lo <span> (quello che teoricamente dovrebbe contenere il valore del prezzo) sotto ogni relativo articolo, quindi ne fa un replace per eliminare, sostanzialmente, tutti i caratteri mantenendo solo le cifre numeriche e il punto.
Ora, dove sta il problema?
Prendiamo questo caso (il primo articolo di quella pagina):
la funzione preleva il valore "15.00 €" (in teoria c'è anche un carattere di ritorno a capo ma poco cambia) quindi elabora il dato e restituisce il valore "15.00" ripulito da tutti i caratteri "inutili".codice:<span class="item_price">15.00 €</span>
Fin qui tutto ok.
Prendiamo invece un caso dove avviene il problema (dove tu hai verificato che il prezzo viene aumentato di un centesimo), ad esempio il 6° articolo.
Cosa c'è esattamente dentro il relativo span del prezzo?
Dall'analisi degli elementi vedo questo:
C'è un commento HTML dentro lo span; presumo fosse solo un esempio di prezzo o forse un precedente valore mantenuto commentato per un qualche motivo... bohcodice:<span class="item_price">9.50 €<!--6.65--></span>
Certo, è solo un commento che hai fini pratici non dovrebbe influire sulle funzionalità della pagina... o forse sì
Cosa avviene nella funzione addToCart?
Stessa storia di prima: la funzione prende l'intero valore trovato dentro lo span "9.50 €<!--6.65-->" quindi lo ripulisce dai caratteri inutili e restituisce esattamente il valore "9.506.65".
Nelle operazioni successive viene poi convertito nel valore numerico 9.506 attraverso un parseFloat; tale valore viene usato per eseguire le operazioni nel carrello anche se sulla pagina, nel carrello, questo valore è troncato alla seconda cifra decimale.
La causa è quindi la presenza di quei commenti dentro lo span, i quali contengono dei caratteri numerici che non dovrebbero essere considerati ma, di fatto, lo sono.
Per risolvere, in modo semplice, ripulisci i contenuti di quegli span, limitandoti ad inserire solo i prezzi e nulla di più.




Rispondi quotando
