<div class="number">
<span class="minus">-</span>
<input type="text" value="1" size="5"/>
<span class="plus">+</span>
</div>
<script type="text/javascript" >
$(document).ready(function() {
$('.minus').click(function () {
var $input = $(this).parent().find('input');
var count = parseInt($input.val()) - 1;
count = count < 1 ? 1 : count;
$input.val(count);
$input.change();
return false;
});
$('.plus').click(function () {
var $input = $(this).parent().find('input');
$input.val(parseInt($input.val()) + 1);
$input.change();
return false;
});
});
$(".input-buttons").each(function () {
// bplus = +
// bminus = -
var input = ($(this).is("[data-target]") ? $($(this).attr("data-target")) : ($(this).is(".bminus") ? $(this).next() : $(this).prev()));
$(this).click(function () {
var max = $(input).is("[data-max]") ? parseInt($(input).attr("data-max")) : 0;
var step = $(input).is("[data-step]") ? parseInt($(input).attr("data-step")) : 1;
var val = parseInt($(input).val()) + (step * ($(this).is(".bminus") ? -1 : 1));
if (max != 0 && max < val) {
val = max;
}
$(input).val(val).change();
});
$(input).change(function () {
var max = $(this).is("[data-max]") ? parseInt($(this).attr("data-max")) : 0;
var step = $(this).is("[data-step]") ? parseInt($(this).attr("data-step")) : 1;
var val = parseInt($(input).val());
var valChanged = false;
if (step > 1) {
if (val % step > 0) {
val = Math.ceil(val / step) * step;
valChanged = true;
}
}
if (val > max) {
val = max;
valChanged = true;
}
if (valChanged) {
$(input).val(val).change();
return false;
}
});
});