2017-04-24 14 views
1

リフレッシュ後にドロップダウンリストの値を変更しないでください。ページのサブミットとリフレッシュ時にdropdownlistの古い値を保持しておきます

これは変化に再びドロップダウンリストに入れて、その後のDropDownList選択された値を取得するJavaスクリプト機能である:

$("#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" [email protected]_btn_Search /> 
    } 

これは私のコントローラです:

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

     pageload(); 

     return View(mysession);    
    } 

私はいくつかの方法を試してみましたが、私と一緒に何かアドバイスは働いていません。 おかげ

+0

モデル変数をポストアクションに再ロードして、ビューに注入する必要があります。 –

+0

私はjavascriptやjqueryでそれを行うことができません – ahosam

+0

どのようにサーバーに投稿していますか? AJAXによって?完全な投稿ですか? –

答えて

0

あなたが最初の(保存された長年の値を避けるために)あなたがのlocalStorageに値を保存する必要があるか、私はのsessionStorageを使用することをお勧めします、二つの部分にセットアップを実行する必要があります。そして、

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

あなたが必要値を戻すには、文書の準備ができている必要があります。

$(document).ready(function() { 
    $("#Rooms").val(window.sessionStorage.getItem("Rooms")); 
}); 
関連する問題