由于Javascript的原因,HTML中的下拉列表在初始化时为空

由于Javascript的原因,HTML中的下拉列表在初始化时为空,javascript,html,dropdown,Javascript,Html,Dropdown,我在一个html网页中创建了一个包含四个选项的下拉列表。它工作得很好,但我意识到当页面刷新时,该值会自动重置为第一个选项。因为我希望将用户的选择保存在内存中,所以我添加了一个在某处找到的javascript代码片段 它工作得很好,只是在初始化时下拉列表的默认值是一个空字段 我需要在初始化时显示第一个选项 我想这很简单,但我一点都不懂JavaScript。你能帮忙吗 下面是代码的样子: <select name="options" id='dropdown'> <option

我在一个html网页中创建了一个包含四个选项的下拉列表。它工作得很好,但我意识到当页面刷新时,该值会自动重置为第一个选项。因为我希望将用户的选择保存在内存中,所以我添加了一个在某处找到的javascript代码片段

它工作得很好,只是在初始化时下拉列表的默认值是一个空字段

我需要在初始化时显示第一个选项

我想这很简单,但我一点都不懂JavaScript。你能帮忙吗

下面是代码的样子:

<select name="options" id='dropdown'>
  <option value="1">1st Option</option>
  <option value="2">2nd Option</option>
  <option value="3">3rd Option</option>
  <option value="4">4th Option</option>
 </select>


 <!-- The script below helps to keep in memory the dropdown value after the page has been refreshed -->

  <script type="text/javascript">

    var selectedItem = sessionStorage.getItem("SelectedItem");  
    $('#dropdown').val(selectedItem);

    $('#dropdown').change(function() { 
    var dropVal = $(this).val();
    sessionStorage.setItem("SelectedItem", dropVal);
    });
 </script>

第一选项
第二种选择
第三种选择
第四种选择
var selectedItem=sessionStorage.getItem(“selectedItem”);
$(“#下拉列表”).val(selectedItem);
$('#下拉列表').change(function(){
var dropVal=$(this.val();
setItem(“SelectedItem”,dropVal);
});

根据您的场景,您可以使用选择下拉列表上的
trigger('change')
在为下拉列表设置值后显式触发更改事件。这将运行change函数,并将初始值保存在sessionStorage中。因此,添加这行代码,
$(“#dropdown”).trigger('change')
类似于:

<script type = "text/javascript" >

var selectedItem = sessionStorage.getItem("SelectedItem");
$('#dropdown').val(selectedItem);

$('#dropdown').change(function() {
  var dropVal = $(this).val();
  sessionStorage.setItem("SelectedItem", dropVal);
});
$('#dropdown').trigger('change'); // trigger the change explicitly
</script>

var selectedItem=sessionStorage.getItem(“selectedItem”);
$(“#下拉列表”).val(selectedItem);
$(“#下拉列表”).change(函数(){
var dropVal=$(this.val();
setItem(“SelectedItem”,dropVal);
});
$(“#下拉列表”).trigger('change');//明确触发更改

我认为您应该检查会话存储密钥是否存在

我已经创建了代码的工作示例:

以下是HTML标记:

<select name="options" id='dropdown'>
  <option value="0" selected>--- select here ---</option>
  <option value="1">1st Option</option>
  <option value="2">2nd Option</option>
  <option value="3">3rd Option</option>
  <option value="4">4th Option</option>
</select>

如果您在这方面遇到任何问题,请告诉我。

我已经应用了一些更改,然后尝试了它,它似乎可以按照我的要求工作。非常感谢你!我只是这么做了,但由于我的声誉不到15分,它说这将被记录下来,但不会反映在公开的分数上。无论如何,谢谢你的帮助,非常感谢!
 let selectedItem = sessionStorage.getItem("SelectedItem");

 if (selectedItem) {
    $('#dropdown').val(selectedItem);
 } else {
   $('#dropdown').val(0);
 }

 $('#dropdown').change(function() { 
    let dropVal = $(this).val();
    sessionStorage.setItem("SelectedItem", dropVal);
 });