使用JavaScript将选定值保留在下拉列表中

使用JavaScript将选定值保留在下拉列表中,javascript,drop-down-menu,Javascript,Drop Down Menu,我有以下下拉列表: Gender<select name="gender" id="gender"> <option value=" "> EMPTY </option> <option value="Male">Male</option> <option value="Female">Female</option> </select> 性别 空的 男性 女性 如果我选择其中

我有以下下拉列表:

Gender<select name="gender"  id="gender"> 
  <option value=" "> EMPTY </option> 
  <option value="Male">Male</option> 
  <option value="Female">Female</option> 
</select>
性别
空的
男性
女性

如果我选择其中一个选项,即使我续订页面,也应将其作为主要选项保持选中状态。例如,如果我选择“男性”,下拉列表应将“男性”保留为选定选项,并且仅当我用鼠标单击它时,此选项才应更改。如何在JavaScript中做到这一点?

HTML页面是无状态的,这意味着它们不记得状态。为了实现您所描述的功能,我们通常让服务器端代码根据之前提交的表单的值输出不同的HTML


只有JavaScript才能使用URL哈希来实现这一点,但无论如何,您都需要一些服务器端代码来运行您的网站。

这里有一种JavaScript/jquery方法,使用localStorage。如果您打算在很多地方这样做,可能有一些方法可以优化此代码

$(function() {
    var genderValue = localStorage.getItem("genderValue");
    if(genderValue != null) {
        $("select[name=gender]").val(genderValue);
    }

    $("select[name=gender]").on("change", function() {
        localStorage.setItem("genderValue", $(this).val());
    });
})

当您通过页面上的编辑按钮导航回该页面时,如果您想保留该值,该怎么办。 这是我的帖子:

你是说,什么时候刷新?这里是否涉及任何服务器端语言?本地存储(或数据存储,如果是旧的IEs)或作为最后一个资源Cookie(除非您想在服务器端存储用户首选项)(在刷新页面时也阅读)是。我正在使用php,alsojs还可以解析查询字符串中的数据。因此,我们可以设置表单操作来获取。但是,如果这是js,为什么不把它变成一个ajax调用,而不刷新页面呢?如果您使用的是PHP,那么您通常会用PHP而不是javascript重新绘制组件。或者使用Ajax和JS,避免刷新