Снова привет)
В шаблоне компонента фильтра в template.php в value ты правильно сделал, только round убери и добавь к инпутам соответствующие data параметры
data-price="<?=$arItem["VALUES"]["MIN"]["VALUE"];?>"
data-price="<?=$arItem["VALUES"]["MAX"]["VALUE"];?>"
Дальше в script.js
1. В самом начале в функцию function JCSmartFilter добавь
this.inputsPrice = {};
2. После этой функции добавь
JCSmartFilter.prototype.setInputsPrice = function() {
if(!this.form)
return;
if(!Object.keys(this.inputsPrice).length) {
var inputs = BX.findChildren(this.form, {'tag': new RegExp('^(input)$', 'i'), 'attribute': {'data-price': new RegExp('^(.*)$', 'i')}}, true);
inputs.forEach(function(item, i) {
this.inputsPrice[item.name] = item.dataset.price;
}, this);
}
}
3. Найди функцию JCSmartFilter.prototype.reload там есть проверка if (this.form) внутри нее добавь
this.setInputsPrice();
4. Найди функцию JCSmartFilter.prototype.values2post перед нее добавь функцию
JCSmartFilter.prototype.values = function(values) {
values.forEach(function(item, i) {
if(Object.keys(this.inputsPrice).indexOf(item.name) !== -1) {
values[i].value = parseFloat(item.value) !== parseFloat(this.inputsPrice[item.name]) ? item.value : '';
}
}, this);
}
5. А внутри функции JCSmartFilter.prototype.values2post добавь
this.values(values);
6. Найди функцию SmartFilter.prototype.recountMinPrice в ней убери
if (newMinPrice != this.minPrice)
this.minInput.value = newMinPrice;
else
this.minInput.value = "";
оставь просто
this.minInput.value = newMinPrice;
7. Тоже самое с функцией SmartFilter.prototype.recountMaxPrice