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>