Как получить значение начальной загрузки слайдера?

Как получить значения начальной загрузки ползунка для скрытых входов?

 <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

Другие вопросы по тегам