javascript - Jquery 和 html5 session 存储显示 json 下拉框中选择的最后状态

标签 javascript jquery html

我有以下下拉列表代码,可以从 JSON 数据动态填充。我将日期存储在 html5 session 存储中。我需要记住并显示下拉列表中“选择”的最后一项。

目前它错误地显示为 <option value="">Select Country</option>

   <select name="country" class="dropdownselect" >
         <option value="">Select Country</option>   
             <option value="Afghanistan" selected="selected">Afghanistan</option>
             <option value="Albania">Albania</option>
             <option value="Algeria">Algeria</option>
             ....
             ......
     </select>

例如,如果用户选择了“阿尔巴尼亚” 基于 localstorage 值我想显示为 <option value="Albania" selected>Albania</option> 我希望它记住并在用户返回页面时显示最后选择的项目,只要它显示最后选择的项目。

JS //这会动态填充下拉国家列表 AJAX 服务

    window.getCountry = function(URL) {       
        var country =URL +"/services/GetCountry";
        console.log("country " +country); 
        $.ajax({
            url: country,
            dataType: "json",
             cache: false,
            success: function(data, textStatus, jqXHR) {

                $('#country').empty();
                $('#country').append($('<option>').text("-Select Country-").attr('value', ''));    
                jQuery.each(data, function(k,v) {

   $('#country').append($('<option>').text(v.nameName).attr('value', v.countryFullname));

                 });       
        },
            error: function(jqXHR, textStatus, errorThrown) {
                console.log('FAILED to get  JSON from AJAX call' + jqXHR + textStatus + errorThrown);

            }
        });       

       }   

     $(document).ready(function() {
        var item = window.localStorage.getItem('country');
      console.log("item "+ item);
        $('select[name=country]').val(item);

        $('select[name=country]').change(function() {
           window.localStorage.setItem('country', $(this).val());
          console.log("item "+ item);



        });

        getCountry(some url);//this create the dropw down list dynamically

    }); 

HTML BIT - 这会动态填充

问题是无论我上次选择什么,它总是显示为“选择国家/地区”。有人可以帮忙吗?

最佳答案

尝试使用.prop()方法代替

var item = 'Albania';
$('select[name="country"] option[value="' + item + '"]').prop('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="country" class="dropdownselect" >
  <option value="">Select Country</option>   
  <option value="Afghanistan">Afghanistan</option>
  <option value="Albania">Albania</option>
  <option value="Algeria">Algeria</option>
</select>

关于javascript - Jquery 和 html5 session 存储显示 json 下拉框中选择的最后状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748590/

相关文章:

javascript - Angular 2 - 在服务之间共享数据

javascript - 使用图像作为贴图创建粒子

导致其他标签呈现为纯文本的 HTML 标签

html - Chrome 51 中的背景大小转换 - 错误还是功能?

javascript - 使用正则表达式提取单词,除非它是给定的单词

javascript - angularjs - 单击按钮更改另一个元素的内容

jquery - 使用滚动变量来增加元素的高度?

javascript - 单选按钮未在 Angular 2 中被检查

javascript - 禁用在控制台中编辑 session 存储变量的可能性

javascript - 如何使用键盘向左/右/上/下移动球?