當用戶改變我的網頁上的過濾器值,我使用更新的頁面URL堅持重裝後複選框以下:使用查詢字符串
function filterChanged() {
window.history.pushState("", document.title, '?' + $("#FiltersForm").serialize())
}
這顯示爲URL的工作就變成了:
http://localhost/?CreatedDate=2016-11-07&StatusFilter=Complete&StatusFilter=Failed
(注意這是一個MVC項目)
如果我然後刷新頁面使用F5或Enter在地址欄它重新加載和文本/日期輸入和選擇保持它們的值。複選框不。
我是否錯過了某些東西,或者這是必須通過解析查詢字符串手動完成的事情之一?
複選框HTML:
<input type="checkbox" class="StatusFilterCheckBox" data-status-filter="Pending" name="StatusFilter" value="Pending" onchange="filterChanged()">
<input type="checkbox" class="StatusFilterCheckBox" data-status-filter="Failed" name="StatusFilter" value="Failed" onchange="filterChanged()">
<input type="checkbox" class="StatusFilterCheckBox" data-status-filter="Complete" name="StatusFilter" value="Complete" onchange="filterChanged()">
最有可能的,因爲它有複選框是否被點擊與否的值。你堅持他們的價值觀,但不是他們的檢查狀態。 –
未選中時,該值不會附加到查詢字符串。我已經找到了如何解析上面的查詢字符串並將複選框設置爲選中狀態,但是如果這適用於文本輸入並選擇它應該適用於文本框,則會出現接縫 – apc
@apc是否將它附加到querysring isn這個問題。你沒有做的是堅持複選框的選中狀態。複選框始終有一個值,即使它們未被檢查。換句話說,當第二頁被加載時,你的查詢字符串中的內容告訴複選框被選中或不被選中?沒有。 –