Отрегулируйте defultValue диапазона - PullRequest
0 голосов
/ 14 января 2019

У меня есть ползунок, который позволяет пользователям выбирать лучшую версию отчета в зависимости от разрешения, которое они выбирают в ползунке (Есть несколько причин, по которым я не хочу читать разрешение в реальном времени, которые мне не нужны чтобы попасть так я остановился на слайдере с предопределенными опциями). Проблема здесь в том, что когда они выбирают другое разрешение, отчет обновляется, и ползунку возвращается значение по умолчанию, которое показывает вводящую в заблуждение настройку.

Исходя из того, что выбрал пользователь, я сохраняю значение индекса (0-4) в div id='getResolution'. Поэтому, если пользователь выберет 1366x768, он будет содержать значение 3. Затем я хочу обновить defaultValue входного div на 3, чтобы при обновлении страницы отображалось правильное значение. У меня есть код ниже, некоторые из которых могут показаться забавными тем, кто не разбирается в том, как Spotfire делает HTML. Понятия все же все же.

Слайдер выглядит так:

enter image description here

Это исходный код для установки ползунка:

<div class="slideContainer" id="slideContainerID">
    <input class="sliderCustom" id="input" type="range" min="0" value="4" max="4" step="1" title="Use this slider to scale the report to your screen resolution">
    <div>Resolution: <span id="output"></span></div>

Это javascript, который я использую, чтобы передать вещи обратно в spotfire, изменить текст под ползунком и (надеюсь) обновить значение по умолчанию:

//get a handle on the range object
var input = document.getElementById('input'),
    output = document.getElementById('output');

//will contain the correct index value for the selection (0-4)
var defValue = document.getElementById('getResolution'); 

//array to show resolution selected
var resolution = ['1024x768','1280x800','1280x1024','1366x768','Full Size'];

//Trying to set the default value here. This is the code that doesn't seem to work
input.defaultValue = defValue.innerHTML; 

//When value changes, select the correct resolution from the array and pass that to Spotfire
//Pass the resolution string to innerHTML to show
input.oninput = function(){
    $("#kickResolution input").val(resolution[this.value]);
    $("#kickResolution input").focus();
    $("#kickResolution input").blur();
    output.innerHTML = resolution[this.value];
};
input.oninput(); 

tl; dr - Помогите мне обновить defaultValue диапазона значением, содержащимся в getResolution

1 Ответ

0 голосов
/ 14 января 2019

Где вы нашли свойство defaultValue?

Вам нужно сохранить измененное значение где-нибудь в localStorage, например:

input.value = localStorage.getItem('resolution');

input.oninput = function(){
    var value = resolution[this.value];
    $("#kickResolution input").val(value);
    $("#kickResolution input").focus();
    $("#kickResolution input").blur();
    output.innerHTML = value;
    localStorage.setItem('resolution', value);
};
...