Buongiorno a tutti,
ho un problema con l'incremento delle quantità da inserire in un carrello.....
ho 3 articoli e per ognuno vorrei inserire la quantità e vedere subito il risultato, partendo da quantità 0 (zero)
il codice mi funziona, ma solo se al secondo click..... mi potete aiutare?!
ecco il codice
codice HTML:<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8" /> <title>carrello</title> <style type="text/css"> <!-- #Container li { display:block; clear:both; width:300px; padding:0px; margin-bottom:10px; } #Container .less { border: thin solid #030; padding:5px 10px; float:left; cursor:pointer; } #Container .more { border: thin solid #030; padding:5px 10px; float: right; cursor:pointer; } --> </style> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script type="text/javascript"> function incrQty() { var totQty = 0; var partial = 0; $("#Container li").each(function () { var qty = new Number($(this).children('.qty').val()); var money = new Number($(this).children('.money').val()); totQty = totQty + qty; partial = partial + (qty * money); }); $("#totQty").html(totQty); $("#totMoney").html(partial); } function quantityWidget(){ var currval; $("#Container li .less").click(function(){ currval = parseInt($(this).parent().find("input.qty").val()); if (currval > 0){ $(this).parent().find("input.qty").val((currval-1)); } }); $("#Container li .more").click(function(){ currval = parseInt($(this).parent().find("input.qty").val()); $(this).parent().find("input.qty").val((currval+1)); }); $("#Container li input.qty").keyup(function(){ currval = $(this).val(); var intRegex = /^\d+$/; var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/; if(isNaN(currval)) { alert("Inserire solo numeri"); $(this).val(1); } }); } $(function(){ quantityWidget(); }); $(function(){ incrQty(); }); </script> </head> <body> <h1>Esempio di aggiunta campi a volo e somma con jQuery</h1> <ul id="Container"> <li> <div class="less"><a href="#" onClick="incrQty()">-</a></div><input type="text" value="1" class="qty" /><div class="more"><a href="#" onClick="incrQty()">+</a></div> x <input type="text" value="2.50" class="money" readonly /> </li> <li> <div class="less"><a href="#" onClick="incrQty()">-</a></div><input type="text" value="0" class="qty" /><div class="more"><a href="#" onClick="incrQty()">+</a></div> x <input type="text" value="3.00" class="money" readonly /> </li> <li> <div class="less"><a href="#" onClick="incrQty()">-</a></div><input type="text" value="0" class="qty" /><div class="more"><a href="#" onClick="incrQty()">+</a></div> x <input type="text" value="3.50" class="money" readonly /> </li> </ul> <br /> TOTALE PRODOTTI: <strong id="totQty">0</strong><br /> TOTALE COSTO: € <strong id="totMoney">0</strong> </body> </html>

Rispondi quotando