使用查询字符串重新加载后保留复选框

时间:2016-11-07 16:25:41

标签: javascript html

当用户更改我页面上的过滤器值时,我将使用以下内容更新页面URL:

http://localhost/?CreatedDate=2016-11-07&StatusFilter=Complete&StatusFilter=Failed

当URL变为:

时,这似乎有效
  <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()">

(注意这是一个MVC项目)

如果我在地址栏中使用F5或Enter刷新页面,则重新加载,文本/日期输入并选择保留其值。复选框没有。

我是否遗漏了某些内容,或者这是必须通过解析查询字符串手动完成的事情之一?

复选框HTML:

{{1}}

2 个答案:

答案 0 :(得分:0)

我认为你错过了&#34; checkstate&#34;的序列化。你的复选框

见这里:http://www.w3schools.com/TAgs/att_input_checked.asp

答案 1 :(得分:0)

根据Scott Marcus的评论。

jquery .serialize()方法仅序列化值而不是复选框的已检查状态,但它只会序列化已选中复选框的值。因此,当页面重新加载时,检查状态不会被保留。

因此,有必要在文档加载时解析查询字符串并设置复选框已选中状态。

可以在此处找到一个很好的例子:https://stackoverflow.com/a/11454800/1856451