Здравствуйте.
Использую Better Exposed Filter с настройкой jQuery UI Slider для фильтрации цены на товары в диапазоне ОТ и ДО.
Задача в том чтобы при помощи JS форматировать значения этих полей.
К примеру имеем ОТ 0 ДО 100, а нужно сделать чтобы было ОТ 0*коэффициент ДО 100*коэффициент.
Использую в script.js следующий код:
Drupal.behaviors.themename = {
attach: function(context, settings) {
// Коэфициент - курс
var rate_string = $("#block-views-rate-block .rate_var").text();
var rate = rate_string.replace(/\s+/g, '');
// Значение по умолчанию
var min_val = $("#edit-field-price-ye-value-min").val();
var max_val = $("#edit-field-price-ye-value-max").val();
$("#edit-field-price-ye-value-min").val(min_val * rate);
$("#edit-field-price-ye-value-max").val(max_val * rate);
// Значение после перетягивания ползунка
$( "#edit-field-price-ye-value-wrapper" ).on( "slide", function( event, ui ) {
var min_val2 = $("#edit-field-price-ye-value-min").val();
var max_val2 = $("#edit-field-price-ye-value-max").val();
$("#edit-field-price-ye-value-min").val(min_val2 * rate);
$("#edit-field-price-ye-value-max").val(max_val2 * rate);
});
}};
})(jQuery);
Кроме того что значение изменяется некорректно - каждый раз на единицу отстает от актуального (если тянем вперед на 5 то значение остается на 4 и в обратную сторону, если тянем на 0 то остается 1), то еще почему то не работает событие change и другие, а только slide.
Прошу подсказать решение или в чем может быть проблема?
Комментарии
Потому что надо правильно значения получать:
var min = ui.values[0];
var max = ui.values[1];
});