Показать сообщение отдельно
  #7 (permalink)  
Старый 08.02.2024, 14:31
Ron Ron вне форума
Интересующийся
Отправить личное сообщение для Ron Посмотреть профиль Найти все сообщения от Ron
 
Регистрация: 21.12.2016
Сообщений: 17

Здравствуйте.
Большое Вам спасибо, что смогли доработать скрипт, очень вам признателен. Я его немного изменил под свои нужды, но он всё равно работает не так функционально как требуется. Высылаю вам подработанный мной рабочий вариант этого скрипта, но только я не могу никак устранить пару багов,
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>
Ответить с цитированием