значения ползунка диапазона jquery для запроса строки - PullRequest
2 голосов
/ 29 ноября 2011

Я использую демонстрационный код ползунка диапазона пользовательского интерфейса jQuery (http://jqueryui.com/demos/slider/#range) для создания ползунка диапазона цен. Я хочу перенести значения, выбранные из этого ползунка диапазона, в параметры получения minValue & maxValue.

Я пытался сделать это, заставляя JavaScript обновлять скрытые поля в приведенной ниже форме, но это, похоже, не работает, так как в данный момент страница перезагружается со строкой запроса URL, похожей на эту: ?minValue=&maxValue=&submit=go и никакие значения не были переданы из ползунка диапазона. Как получить значения из ползунка диапазона в строку запроса?

Заранее спасибо.

<script type="text/javascript" language="javascript">
$(function() {
    $( "#slider-range" ).slider({
        range: true,
        min: 1,
        max: 3000,
        values: [ 1, 300 ],
        slide: function( event, ui ) {
            $( "#amount" ).val( "£" + ui.values[ 0 ] + " - £" + ui.values[ 1 ]);
        }
    });
    $( "#amount" ).val( "£" + $( "#slider-range" ).slider( "values", 0 ) + " - £" + $( "#slider-range" ).slider( "values", 1 ) );
    $( "#minValue" ).val( ui.values[ 0 ] );
    $( "#maxValue" ).val( ui.values[ 1 ] );
});
</script>

<form action="">
    <div id="slider-range"></div>
    <label for="amount">Price range:</label><input type="text" id="amount" style="border:0; color:#28b1ff; font-weight:bold;" />
    <input id="minValue" name="minValue" type="hidden" />
    <input id="maxValue" name="maxValue" type="hidden" />
    <input id="randomGiftButton" type="submit" name="submit" value="go" />
</form>

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Вы устанавливаете min / maxValues ​​вне кода ползунка. Переместите эти строки в функцию обратного вызова slide.

slide: function( event, ui ) {
    $( "#amount" ).val( "£" + ui.values[ 0 ] + " - £" + ui.values[ 1 ]);
    $( "#minValue" ).val( ui.values[ 0 ] );
    $( "#maxValue" ).val( ui.values[ 1 ] );
}
1 голос
/ 29 ноября 2011

Когда вы вызываете следующие две строки для document.ready, переменная ui не существует:

$( "#minValue" ).val( ui.values[ 0 ] );
$( "#maxValue" ).val( ui.values[ 1 ] );

Вы проверили переменную ui внутри функции обратного вызова slide, чтобы сделатьуверены, что вы правильно обращаетесь к данным?Если вы еще этого не сделали, попробуйте это и посмотрите, что появляется в консоли инструментов разработчика:

    slide: function( event, ui ) {
        console.log(ui);
        $( "#amount" ).val( "£" + ui.values[ 0 ] + " - £" + ui.values[ 1 ]);
    }

Также в документации указано, как вы получаете доступ к значениям:

var values = $("#slider-range").slider( "option", "values" );

Который возвращает массив, поэтому я предполагаю, что для доступа к значениям вы бы сделали это:

var min = values[0],
    max = values[1];
...