我不同意這裏的答案。在大多數情況下,將文本內容放置在JS內部是不好的做法。其次,如果要顯示的文本是範圍值的重要描述部分,則應使用數據專家來使其可訪問。
這意味着你的HTML可能看起來像這樣:
<div class="range-output">
<label for="range">label</label>
<input id="range" name="range" list="range-list" type="range" value="0" step="10" max="50" />
<datalist id="range-list">
<select>
<option value="0" label="low"></option>
<option value="20" label="middle"></option>
<option value="50" label="high"></option>
</select>
</datalist>
</div>
和你的JS(我使用jQuery在這裏),看起來是這樣的:
$('div.range-output').each(function() {
var range = $('input[type="range"]', this);
var output = $('<span class="output" />').appendTo(this);
var updateOutput = function() {
var val = range.prop('value');
var valLabel = $(range.prop('list')).find('option[value="' + val + '"]').prop('label');
output.html(valLabel || val);
};
range.on('input', updateOutput).each(updateOutput);
});
要回答你的第二個問題:input [type =「range」]是一個正常的窗體控件。您可以簡單地命名它並將其放入表單屬性中。而不是使用按鈕樣式的錨點使用按鈕[type =「submit」],你就完成了。如果您無法將按鈕和/或輸入[type =「range」]放入表單中。您可以使用表單屬性將它們與表單相關聯。
這裏是一個簡單的小提琴,展示上面的代碼:
感謝您的支持。如果我可以,還有一個問題,在滑塊下面我有一個引導按鈕行。有沒有一種方法可以將選定的「步驟」作爲URL變量傳遞,以便我可以在後面的頁面中檢索它。 – Ben
如果你的按鈕獲得一個頁面,你可以將你的變量作爲查詢字符串傳遞。 在document.getElementById(「range」)。innerHTML = newValue +句子之後添加此內容。 : var current_link = document.getElementById(「my_button」)。href; document.getElementById(「my_button」)。href = current_link +「?step =」+ newValue; –