在提交时保留并保留下拉列表的旧值并刷新页面

时间:2017-04-24 22:27:30

标签: javascript jquery asp.net asp.net-mvc

我想在刷新或点击提交页面或回复后保持Dropdownlist Selected值相同。

这是java-script函数,在更改时获取Dropdownlist选择的值,然后再次将其放入Dropdownlist:

$("#Rooms").on('change', function (e) {
window.localStorage.setItem("Rooms", $("#Rooms option:selected").val());
$("#Rooms").val(window.localStorage.getItem("Rooms"));
});

这个功能在刷新页面时起作用,但是当我点击mvc上的提交按钮或动作链接时我无法正常工作,我不知道为什么。

这是我在表格中的下拉列表:

   @using (Html.BeginForm("Index", "Home", FormMethod.Get))
         {
      <select id="Rooms" name="Rooms" class="dropdown">
      @for (int i = 1; i <= Model.MaximumNumberOfRooms; i++){
         <option value="@i">@i</option>
         }
       </select>
   <input type="submit" class="btns" value=@Resource.criteria_btn_Search />
     }

这是我的控制者:

    [HttpGet]
    [ActionName("Index")]
    public ActionResult Index_Get()
    {
        //checkURL();                        

        pageload();

        return View(mysession);            
    }
我尝试了几种方法,但没有任何建议。 感谢

1 个答案:

答案 0 :(得分:0)

您需要将设置分为两部分,首先需要将值保存到localstorage中,或者我建议使用sessionStorage(以避免长时间保存值):

$("#Rooms").on('change', function () {
  window.sessionStorage.setItem("Rooms", this.value);
});

然后你需要设置值,但这必须是文档就绪:

$(document).ready(function () {
  $("#Rooms").val(window.sessionStorage.getItem("Rooms"));
});