Помогите подружить слайдер с input
Вложений: 2
Привет нашел классный слайдер диапазона (во вложении пример). Не знаю как его подружить с инпутами чтобы было как на картинке во вложении.
Чтобы при изменении диапазона слайдера менялись значения инпутов. помогите пожалуйста. |
Нашел на оф сайте один ответ как связать инпуты с ним. Нужно работать с методом update. Но написать сам не могу. Просьба о помощи с силе.
input 1.on("change", function () { slider("update", {...}) }) |
Alex57B,
зачем плодить темы документацию прочитать есть даже на ррусском https://github.com/IonDen/ion.rangeS...r/readme.ru.md и сделать как в прошлом примере http://javascript.ru/forum/dom-windo...lajjderom.html или в раздел работа. ![]() |
Alex57B,
:cray: :cray: :cray: пример для изменения инпута минимум -- остальное сами или в раздел работа <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Ion.RangeSlider - test</title> <link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/normalize.min.css" /> <link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/ion.rangeSlider.css" /> <link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/ion.rangeSlider.skinNice.css" /> </head> <body> <div style="position: relative; padding: 50px; width: 600px"> <label for="minCost">от</label><input type="text" id="minCost" value=" менять тут"/> <label for="maxCost">до</label><input type="text" id="maxCost" /> <input type="text" id="example_1" /> </div> <!-- All JS --> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://ionden.com/a/plugins/ion.rangeSlider/static/js/ion-rangeSlider/ion.rangeSlider.js"></script> <script> $(document).ready(function(){ $("#example_1").ionRangeSlider({ min: 456, max: 556000, type: 'double', postfix: " руб", prettify: false, hasGrid: true, onChange: function (obj) { jQuery("input#minCost").val(obj.fromNumber); jQuery("input#maxCost").val(obj.toNumber); } }); jQuery("input#minCost").on("change", function () { $("#example_1").ionRangeSlider("update", {from: this.value}) }) }); </script> </body> </html> |
рони,
Спасибо большое! |
Использование в форме
Спасибо, Рони, за рабочий пример. Может сможете помочь в такой ситуации, хочу использовать слайдер в форме фильтра. После отправки формы значения инпутов передаются в урле и данные выводятся из текущего диапазона, но после перезагрузки страницы слайдер занимает исходные значение, не смотря на то, что в инпутах значения value сохраняются такие же как при отправке формы. Как сделать, чтобы после перезагрузки страницы с результатами фильтрации в форме, слайдер принимал значения fromNumber и toNumber уже на основе сохраненных значений инпутов?
Другими словами, в этом примере слайдер передает значения в инпут, как сделать чтобы после перезагрузки страницы он еще и получал эти значения из инпута? Вот как работает это сейчас http://historydev.96.lt/ |
kingstakh,
$(document).ready(function(){ $("#example_1").ionRangeSlider({ min: 1871, max: 1991, type: 'double', prettify: false, hasGrid: true, onChange: function (obj) { jQuery("input#min-date").val(obj.fromNumber); jQuery("input#max-date").val(obj.toNumber); } }); jQuery("input#min-date").on("change", function () { $("#example_1").ionRangeSlider("update", {from: this.value}) }) jQuery("input#min-date").val() && jQuery("input#min-date").change() jQuery("input#max-date").on("change", function () { $("#example_1").ionRangeSlider("update", {to: this.value}) }) jQuery("input#max-date").val() && jQuery("input#max-date").change() }); |
Спасибо огромное, Профессор! Теперь все как нужно :dance:
|
kingstakh,
если у вас сервер формирует значения инпутов то проще инициализировать плагин добавив from: <значение> или null, to: <значение> или null, тогда строки 17 и 22 будут лишние |
nSide,
нет кода нет совета делайте макет |
уже не надо. распарсил ответ слайдера
спасибо ))) |
Цитата:
Кстати, почему пишут "диапазон цен", если смысл в точности обратный - сколько вы денег хотите потратить. Надо писать "Ваш бюджет". |
Во-первых, огромное спасибо всем в этой теме за неоценимую помощь. ))) Без вас я бы еще долго мучился.
Во-вторых, слайдер обновился и теперь "Для того чтобы использовать публичные методы, вначале нужно записать значение слайдера в переменную". Поэтому, с вашей помощью, я использовал следующую конструкцию: <input type="text" name="pricefrom" id="pricefrom" value=""> <input type="text" name="priceto" id="priceto" value=""> <input type="text" id="range" name="range" value="" /> <script type="text/javascript"> (function($) { $(function(){ var $range = $("#range"); var track = function () { var value = this.value.split(";"); jQuery("input#pricefrom").val(value[0]); jQuery("input#priceto").val(value[1]); }; $range.ionRangeSlider({ hide_min_max: true, min: 100, max: 100000, from: 500, to: 70000, type: 'double', step: 100, postfix: " ₽", grid: true }); $range.on("change", track).change(); var slider = $("#range").data("ionRangeSlider"); jQuery("input#pricefrom").on("change", function () { slider.update({from: this.value}) }) jQuery("input#pricefrom").val() && jQuery("input#pricefrom").change() jQuery("input#priceto").on("change", function () { slider.update({to: this.value}) }) jQuery("input#priceto").val() && jQuery("input#priceto").change() }); })(jQuery); </script> UPD: Обновил листинг в соответствии с рекомендациями. |
nSide,
на всякий случай вместо строк 11 и 12 var value = this.value.split(";"); и строку 27 дополнить $range.on("change", track).change(); |
Цитата:
UPD: И действительно, так лучше )) Спасибо! UPD2: Обновил листинг в соответствии с рекомендациями. |
Здравствуйте, извините что не по теме, но очень нужна помощь
Есть скрипт <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> </head> <body> <div id="result"></div> <button onClick="setNumber(this)" value="20">20</button> <button onClick="setNumber(this)" value="30">30</button> <button onClick="setNumber(this)" value="40">40</button> <script> var result = document.getElementById('result') var num = 0; function setNumber(e){ result.innerHTML = num += parseInt(e.value); } </script> <style> #result{ border:1px solid green; width:100px; height:50px; margin-bottom:10px } </style> </body> </html> Как его разъединить. К примеру чтоб кнопка было в низу слева сайта а число отображалось в правом верхнем углу. Буду очень благодарна. Готова заплататить |
Вот смотрите prntscr.com/cw5pmd Надо чтоб кнопки допустим были здесь а цифры в другом месте
Код я втавляю в целиком в редакторе |
togtfo
|
Часовой пояс GMT +3, время: 04:36. |