JavaScript/HTML - 保留 select 下拉列表中的数值 selected
JavaScript/HTML - Keeping numeric values from select dropdown list selected
我正在使用以下代码 select 保留我的 option
HTML 标签的值:
document.getElementById('select_itens_op').onchange = function() {
sessionStorage.setItem('pagina', document.getElementById('select_itens_op').value);
};
if (sessionStorage.getItem('pagina')) {
document.getElementById('select_itens_op').options[sessionStorage.getItem('pagina')].selected = true;
}
它工作得很好,但在我的一个标签中遇到了问题。 option
标签有数值,当我重新加载页面时,它被保留的是 option
与存储在 sessionStorage
.
中的值的索引相关
示例:
<select name="select_itens_op" id="select_itens_op" ">
<option value="">Página</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="8">8</option>
<option value="10">10</option>
</select>
如果我 select 选项的值为 2
,这个值将存储到 sessionStorage 中,但是当我刷新页面时,选项 selected 将是带有值 4
,因为它是列表的 position 2
。如果我 select 4
存储的值将是 4
并且返回的选项将是 10
,依此类推。
如果我使用字符串值,效果很好,前提是我将 ids
添加到这些标签,但我需要这些数值。我已经进行了研究,但没有找到合适的答案。
解决这个问题的最佳方法是什么?
直接去找SelectElement.value
:
const el_op = document.getElementById('select_itens_op');
// Set on init
if (sessionStorage.pagina) el_op.value = sessionStorage.pagina;
// Store on change
el_op.addEventListener('change', () => sessionStorage.pagina = el_op.value );
我正在使用以下代码 select 保留我的 option
HTML 标签的值:
document.getElementById('select_itens_op').onchange = function() {
sessionStorage.setItem('pagina', document.getElementById('select_itens_op').value);
};
if (sessionStorage.getItem('pagina')) {
document.getElementById('select_itens_op').options[sessionStorage.getItem('pagina')].selected = true;
}
它工作得很好,但在我的一个标签中遇到了问题。 option
标签有数值,当我重新加载页面时,它被保留的是 option
与存储在 sessionStorage
.
示例:
<select name="select_itens_op" id="select_itens_op" ">
<option value="">Página</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="8">8</option>
<option value="10">10</option>
</select>
如果我 select 选项的值为 2
,这个值将存储到 sessionStorage 中,但是当我刷新页面时,选项 selected 将是带有值 4
,因为它是列表的 position 2
。如果我 select 4
存储的值将是 4
并且返回的选项将是 10
,依此类推。
如果我使用字符串值,效果很好,前提是我将 ids
添加到这些标签,但我需要这些数值。我已经进行了研究,但没有找到合适的答案。
解决这个问题的最佳方法是什么?
直接去找SelectElement.value
:
const el_op = document.getElementById('select_itens_op');
// Set on init
if (sessionStorage.pagina) el_op.value = sessionStorage.pagina;
// Store on change
el_op.addEventListener('change', () => sessionStorage.pagina = el_op.value );