-
Notifications
You must be signed in to change notification settings - Fork 4
/
button-handler.js
1 lines (1 loc) · 1002 Bytes
/
button-handler.js
1
jQuery(function($){if(!String.prototype.getDecimals){String.prototype.getDecimals=function(){var num=this,match=(""+num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);if(!match){return 0}return Math.max(0,(match[1]?match[1].length:0)-(match[2]?+match[2]:0))}}$(document).on("click",".plus, .minus",function(event){event.preventDefault();var qty=$(this).closest(".quantity").find(".qty"),currentVal=parseFloat(qty.val()),max=parseFloat(qty.attr("max")),min=parseFloat(qty.attr("min")),step=qty.attr("step");if(!currentVal||currentVal===""||currentVal==="NaN")currentVal=0;if(max===""||max==="NaN")max="";if(min===""||min==="NaN")min=0;if(step==="any"||step===""||step===undefined||parseFloat(step)==="NaN")step=1;if($(this).is(".plus")){if(max&¤tVal>=max){qty.val(max)}else{qty.val((currentVal+parseFloat(step)).toFixed(step.getDecimals()))}}else{if(min&¤tVal<=min){qty.val(min)}else if(currentVal>0){qty.val((currentVal-parseFloat(step)).toFixed(step.getDecimals()))}}qty.trigger("change")})});