javascript - 如何制作下拉菜单以选择正确的选定项目?

标签 javascript jquery html asp.net

我有一个如下所示的下拉菜单。

<select name="slt">
 <option value="1">One</option>
 <option value="2">Two</option>
 <option value="3">Three</option>
 <option value="3">Three +</option>
</select>

如果我选择选项“三+”,则在刷新一些页面后,所选选项将变为“三”,因为“三”和“三+”具有相同的值。如何避免这种情况并使页面刷新后所选项目为“三+”? 提前致谢。

最佳答案

这是因为浏览器会自动保留该值。如果该值重复,它将选择在列表中找到的第一个值。

要阻止此行为,您需要为 Three+ 选项指定一个唯一的,例如:

<option value="3+">Three +</option>
<小时/>

如果您根本无法更改 HTML,则需要将所选元素的索引存储在 localStorage 或 cookie 中,并在加载时再次设置:

// set onchange
$('select').change(function() {
    localStorage.setItem('sltIndex', $(this).prop("selectedIndex"));
});

// get onload
$(this).prop("selectedIndex", localStorage.getItem('sltIndex') || 0)

尽管代码需要修改,但使用 cookie 的模式是相同的。

关于javascript - 如何制作下拉菜单以选择正确的选定项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24632548/

相关文章:

javascript - 在内联语句中调用 Javascript 函数

javascript - 单击后使按钮只读

html - 当鼠标移动到 UL LI 列表时,顶部悬停边框颜色切换为默认颜色

javascript - Angular 5 : creating a parent component with an external template and overriding the inner part

javascript - jQuery 当指向链接时应显示默认隐藏的 div

javascript - 以编程方式关闭下拉按钮

php - 如何在 ajax url 中发布带空格的波斯语句

javascript - 尝试显示存储在本地存储中的数组的值时,对象可能为空错误( typescript )

javascript - HTML 表单不会捕获 Bootstrap 响应表中的所有复选框

javascript - JQuery/JavaScript : How to put a thing back where it was on pageload?