Salutare,
Cum front-end-ul imi da tot timpul batai de cap, doresc sa va supun atentiei urmatoarea situatie.
Am preluat un proiect cu un formular in care campurile sunt de forma asta:
<ul>
<li class="basic">
<h4 class="secondary-title" style="margin-top: 0px;">Produse</h4>
</li>
<li class="produs">
<div class="label">
• Articulatii (60)
</div>
<input class="short" type="text" class="cantitate" name="cantitate_23" value="" placeholder="Cantitate" /> -
<input class="short" type="text" class="pret_unitar" name="pret_unitar_23" value="" placeholder="Pret unitar" />
</li>
<li class="produs">
<div class="label">
• Articulatii (120)
</div>
<input class="short" type="text" class="cantitate" name="cantitate_24" value="" placeholder="Cantitate" /> -
<input class="short" type="text" class="pret_unitar" name="pret_unitar_24" value="" placeholder="Pret unitar" />
</li>
<li class="produs">
<div class="label">
• Crema Reviflex
</div>
<input class="short" type="text" class="cantitate" name="cantitate_29" value="" placeholder="Cantitate" /> -
<input class="short" type="text" class="pret_unitar" name="pret_unitar_29" value="" placeholder="Pret unitar" />
</li>
<li class="produs">
<div class="label">
• Cura de slabire (60)
</div>
<input class="short" type="text" class="cantitate" name="cantitate_22" value="" placeholder="Cantitate" /> -
<input class="short" type="text" class="pret_unitar" name="pret_unitar_22" value="" placeholder="Pret unitar" />
</li>
<li class="produs">
<div class="label">
• Detoxifiant (60)
</div>
<input class="short" type="text" class="cantitate" name="cantitate_3" value="" placeholder="Cantitate" /> -
<input class="short" type="text" class="pret_unitar" name="pret_unitar_3" value="" placeholder="Pret unitar" />
</li>
<li class="produs">
<div class="label">
• Detoxifiant (150)
</div>
<input class="short" type="text" class="cantitate" name="cantitate_4" value="" placeholder="Cantitate" /> -
<input class="short" type="text" class="pret_unitar" name="pret_unitar_4" value="" placeholder="Pret unitar" />
</li>
[...]
<li>
<div class="label">
Valoare comanda
</div>
<input class="short" type="text" name="valoare_comanda" id="valoare_comanda" readonly="readonly" value="" />
</li>
</ul>
Ideea este ca utilizatorul trebuie sa introduca o valoare in campul cantitate, apoi un pret unitar, iar in final, in campul “valoare_comanda” trebuie sa se insumeze fiecare linie.
jQuery-ul l-am facut asa:
var total = 0;
$("body").on("keyup change", ".produs input", function() {
var me = $(this);
var other = me.parent(".produs").find("input").not(me);
if (other.val() != "" && me.val != "") {
var total_produs = me.val() * other.val();
total += total_produs;
}
});
Evident, in consola apare o valoare eronata, deoarece insumarea o face la fiecare keyup. Doar ca nu stiu cum as putea modifica snippet-ul jQuery astfel incat sa-l fac functional in conditiile in care cunostintele mele in domeniu sunt destul de limitate.
Orice sfat e binevenit.
Multumesc.