1$(document).ready(function () { 2 let amountWrap = '.js-amount-wrap', 3 amountInput = '.js-amount-input'; 4 5 // пÑÐ¾Ð²Ð¾Ð´Ð¸Ñ Ð²Ñе пÑовеÑки введенного колиÑеÑÑва (num) 6 // запÑеÑаеÑÑÑ Ð²Ð¿Ð¸ÑÑваÑÑ Ð½Ðµ кÑаÑное минималÑÐ½Ð¾Ð¼Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑÐ²Ñ 7 // окÑÑглÑем в менÑÑÑÑ ÑÑоÑонÑ, до допÑÑÑимого кÑаÑнго знаÑÐµÐ½Ð¸Ñ (minAmount) 8 // не болÑÑе Ñем еÑÑÑ Ð½Ð° Ñкладе 9 function prepareAmount(num, minAmount, maxAmount) { 10 //console.log(num+','+ minAmount+','+ maxAmount); 11 if (isNaN(num)) { 12 num = 0; 13 } 14 if (isNaN(minAmount)) { 15 minAmount = 0; 16 } 17 if (isNaN(minAmount)) { 18 minAmount = 0; 19 } 20 if (num > 0 && num < minAmount) { 21 num = minAmount; 22 } 23 if (num <= 0) { 24 num = minAmount; 25 } 26 if (num >= maxAmount) { 27 num = maxAmount; 28 } 29 30 // еÑли знаÑение в поле болÑÑе минималÑно допÑÑÑимого, 31 // Ñо вÑÑиÑлÑем ÑколÑко Ñаз в ÑÑо знаÑение Ð²Ñ Ð¾Ð´Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñно допÑÑÑимое 32 if (num > minAmount) { 33 // ÑоÑноÑÑÑ Ð¿Ð¾Ñле запÑÑой 34 let fix = 0; 35 let str = minAmount.toString(); 36 if (str) { 37 let val = str.split('.'); 38 if (val && val.length == 2) { 39 fix = val[1].length; 40 } 41 } 42 let count = (num / minAmount).toFixed(fix); 43 count = Math.floor(count); 44 num = (count * minAmount).toFixed(fix); 45 } 46 return num; 47 } 48 49 //ÑвелиÑение колиÑеÑÑва ÑоваÑа (ÑÑÑаниÑа ÑоваÑа, миникаÑÑоÑка, коÑзина, ÑÑÑаниÑа заказа) 50 $('body').on('click', '.js-amount-change-up', function () { 51 let obj = $(this).parents(amountWrap).find(amountInput); 52 let val = 1 * obj.val(); 53 let minAmount = obj.data('increment-count') != 0 ? obj.data('increment-count') : 1; 54 let maxAmount = obj.data('max-count')>0?obj.data('max-count'):9999999; 55 56 val = val + minAmount; 57 val = prepareAmount(val, minAmount, maxAmount); 58 obj.val(val).trigger('change'); 59 return false; 60 }); 61 62 //ÑменÑÑение колиÑеÑÑва ÑоваÑа (ÑÑÑаниÑа ÑоваÑа, миникаÑÑоÑка, коÑзина, ÑÑÑаниÑа заказа) 63 $(document.body).on('click', '.js-amount-change-down', function () { 64 let obj = $(this).parents(amountWrap).find(amountInput); 65 let val = 1 * obj.val(); 66 let minAmount = obj.data('increment-count') != 0 ? obj.data('increment-count') : 1; 67 let maxAmount = obj.data('max-count')>0?obj.data('max-count'):9999999; 68 69 val = val - minAmount; 70 val = prepareAmount(val, minAmount, maxAmount); 71 obj.val(val).trigger('change'); 72 return false; 73 }); 74 75 // ÐÑклÑÑение ввода в поле вÑбоÑа колиÑеÑÑва недопÑÑÑимÑÑ Ð·Ð½Ð°Ñений. (ÑÑÑаниÑа ÑоваÑа, миникаÑÑоÑка, коÑзина, ÑÑÑаниÑа заказа) 76 $(document.body).on('change', amountInput, function () { 77 let obj = $(this); 78 let val = 1 * obj.val(); 79 let minAmount = obj.data('increment-count') != 0 ? obj.data('increment-count') : 1; 80 let maxAmount = obj.data('max-count')>0?obj.data('max-count'):9999999; 81 82 obj.val(prepareAmount(val, minAmount, maxAmount)); 83 return false; 84 }); 85 86 const amountInputs = document.querySelectorAll(amountInput); 87 for (const inputAmount of amountInputs) { 88 inputAmount.addEventListener('keydown', (e) => { 89 if (e.keyCode === 13) { 90 e.preventDefault(); 91 let obj = e.target; 92 let val = 1 * obj.value; 93 let minAmount = obj.dataset.incrementCount != 0 ? obj.dataset.incrementCount : 1; 94 let maxAmount = obj.dataset.maxCount > 0 ? obj.dataset.maxCount :9999999; 95 96 obj.value = prepareAmount(val, minAmount, maxAmount); 97 return false; 98 } 99 }); 100 } 101});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.