Многие знают, как сделать предложение с произвольной ценой, но как только вы сделаете так, как описано в статье геткурса, сразу встаёт 2 вопроса:
- Как убрать лишние знаки, которые путают пользователей, и оставить просто «руб» 😅
- Как поставить минимальную или максимальную стоимость. Ниже или выше которой вписать было бы технически невозможно.

В этом нам поможет JavaScript, который найдёт нужное предложение в форме и добавит для него соответствующие ограничения. При этом, если в форме есть и другие предложения с количеством, они не будут затронуты.
Изменить минимальную и максимальную стоимость предложения можно в коде скрипта:
$(()=>{setTimeout(()=>{
let min = 150; // Минимальная стоимость предложения
let max = 999999; // Максимальная стоимость предложения
$('form .count-'+min+'-'+max).each((i,el)=>{
$(el).find('.offer-count-need-hide').hide();
$(el).find('.final-price').html(function(){
return $(this).html().replace('1','');
})
$(el).find('.offer-count-input')
.attr('min', min).off('input')
.on('change', function(){
let val = parseInt($(this).val());
if(val < min) val = min;
if(val > max) val = max;
setTimeout(()=>{
$(this).val(val).attr('data-qty-value', val);
let $pos = $('.min-'+min+' .form-position-input');
$pos.attr('data-qty-value', val);
$pos.attr('checked', false).prop('checked', false);
$pos[0].click();
if(!$pos.prop('checked')) {
$pos[0].click();
}
});
});
});
})});
❗️Чтобы скрипт заработал нужно прописать в настройках блока с нужным предложениеми класс count-min-max
, только min и max замените на цифры, которые вы указали в скрипте. Например, count-150−999 999