Ron2323
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. Спасибо, что смогли попробовать подработать скрипт, но тоже этот вариант не так функционален как требуется. Вот у меня уже есть рабочий вариант этого скрипта (под требуемый расчёт), только я не могу никак устранить пару багов, 1. Первый баг, что когда нажимаешь кнопку <button onclick="qplus('#qty'); qplus1('#qty');"><i>Цена монтажа</i></button> то скрипт в счётчике количества (вычислений) сразу перескакивает с цифры 1 на 3, потом на 5 и т.д через две позиции при каждом нажатии "Цена монтажа", но при этом считает суммы правильно. 2. Второй баг, заключается в том, что когда, сначала нажмёшь кнопку "Цена монтажа" (сумма считается), а потом когда нажимаешь на кнопку "Кол-во" (которая имеет функцию "назад", и должна уменьшать обратно сумму вычислений) <button onclick="qminus('#qty'); qminus1('#qty');" id="minus"><i> Кол-во</i></button> то скрипт не уменьшает сумму на 5500, а наоборот единоразово её увеличивает на 5500, но при этом в поле суммы "Цена монтажа" всё остается без изменений. Помогите пожалуйста разобраться с данными проблемами. Вот код этого скрипта: <span id="price_here" hidden="hidden">5500</span><span id="sum_here">5500</span> <button onclick="qminus('#qty'); qminus1('#qty');" id="minus"><i> Кол-во</i></button> <input type="number" value="1" style="width:30px" onchange="check_qty($(this),1,100);" name="qty" id="qty" value="<? echo $qty ?>" /><button onclick="qplus('#qty'); qplus1('#qty');"><i>Цена монтажа</i></button> <span id="sum_here1"></span> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script> function qminus1(el, min) { var e = $(el); var compare = parseInt(e.val()); var i = ((compare - 1) < min) ? min : compare - 0; e.val(i); show_price1($('#sum_here1'), $('#price_here'), i); } function qplus1(el, max) { var e = $(el); var compare = parseInt(e.val()); var i = ((compare + 1) > max) ? max : compare + 1; e.val(i); show_price1($('#sum_here1'), $('#price_here'), i); } function check_qty1(el, min, max) { var compare = parseInt(el.val()); if (compare < min) { el.val(min); alert(min + ' is minimal qty'); } if (compare > max) { el.val(max); alert(max + ' is maximum qty'); } show_price1($('#sum_here1'), $('#price_here'), el.val()); } function show_price1(el, pr, ch) { var sum = pr.html() * ch; el.html(sum*0.02); } </script> <script> function qminus(el, min) { var e = $(el); var compare = parseInt(e.val()); var i = ((compare - 1) < min) ? min : compare - 0; e.val(i); show_price($('#sum_here'), $('#price_here'), i); } function qplus(el, max) { var e = $(el); var compare = parseInt(e.val()); var i = ((compare + 1) > max) ? max : compare + 1; e.val(i); show_price($('#sum_here'), $('#price_here'), i); } function show_price(el, pr, ch) { var sum = pr.html() * ch; el.html(sum); } </script> |