Как получить значение начальной загрузки слайдера?
Как получить значения начальной загрузки ползунка для скрытых входов?
<input type="hidden" name="min_value" id="min_value" value="">
<input type="hidden" name="max_value" id="max_value" value="">
$(function() {
$( "#slider-range-s1" ).slider({
range: true,
min: 0,
max: 500,
value: [ 0, 500 ]
});
});
6 ответов
Я думаю, что это в настоящее время сломано.
Документация гласит:
методы
.slider('GetValue')
Получить значение.
Как бы то ни было, звоню $('#sliderDivId').slider('getValue')
возвращает селектор jQuery, а не значение...
На данный момент вы можете вручную извлечь его из объекта данных...$('#sliderDivId').data('slider').getValue()
Быстрое исправление:
$.fn.slider = function (option, val) {
if (typeof option == 'string') {
if (this.length) {
var data = this.eq(0).data('slider');
if (data)
return data[option](val);
return null;
}
}
return this.each(function () {
var $this = $(this),
data = $this.data('slider'),
options = typeof option === 'object' && option;
if (!data) {
$this.data('slider', (data = new Slider(this, $.extend({}, $.fn.slider.defaults, options))));
}
})
};
Проблема заключается в том, что существует более 1 элемента с одинаковым идентификатором (ползунок div и вход внутри ползунка div), в этом примере $('#sliderDivId'). Если вы выберете элемент ввода с помощью JQuery, вы можете использовать ползунок API.
$('input[id="sliderDivId"]').slider('getValue')
Я знаю, что опоздал, но это все еще сломано, но чтобы исправить это открыть bootstrap-sliders.js
и введите эти три вещи:
самый конец первой функции: Slider
:
this.calculateValue();
прямо перед:return val;
в calculateValue
функция
grandVal = val;
после $.fn.slider
функция:
$.fn.sliderValue = function(){
return grandVal;
};
var grandVal;
Теперь вы можете получить доступ к значению по $('#MySliderId').sliderValue()
На момент написания статьи это немного странно, но вы можете заставить его работать:
1 / Убедитесь, что вы указали пустой диапазон, начинающийся с "value[0]". Если вы не сделаете это, его внутреннее поле значения станет неопределенным, например
$('#setBidDialogSlider').slider({ value: [0], max: max, step: 0.2, formater: function(v) { return v.toFixed(2)+"BTC" } });
2/ Теперь, наконец, вы можете поймать значение в событии
$('#setBidDialogSlider').slider().on('slide', function(ev) {
$scope.dialog.order_value = ev.value*$scope.dialog.price;
});
Вы можете использовать это из встроенной функции
$( "#slider-range-s1" ).slider({
range: true,
min: 0,
max: 500,
value: [ 0, 500 ]
slide: function( event, ui ) {
// u could use this function
$(".min-slider-value").html( "$" + ui.values[ 0 ]);
$(".max-slider-value").html( "$" + ui.values[ 1 ]);
},
change: function(event, ui) {
// or u could use this function
$(".min-slider-value").html( "$" + ui.values[ 0 ]);
$(".max-slider-value").html( "$" + ui.values[ 1 ]);
}
});
и спасибо, я думал, что могу поделиться этим с вами, ребята:D