1

我有一个用户可以填写并单击预览按钮的表单(预览不会将任何内容保存到数据库,只会创建一个视图)。我正在实现一个“关闭预览”功能,它将带用户回到填写的表单并提供一个选项来完成输入。我在使用 sessionStorage 变量用之前填充的内容填充下拉菜单时遇到问题。

这是下拉菜单:

<label>State:</label><br>
<select required class="form-control" name="state" style="width:100%">
<option selected disabled value="">Select state</option>
<% _.each(states, function(state) { %>
<option value="<%= state.id %>" ><%= state.name %></option>
<% }) %>
</select>

我已经存储了状态的ID(用户填写和预览的内容)如下:

sessionStorage.setItem('propertyState', "<%= params['state'] %>");

上面存储了id选定的下拉选项。

重新填写表单时,我需要检查哪个下拉项 id 与 sessionStorage 中存储的项匹配。sessionStorage仅在内部有效<script>..</script>,参数仅在内部有效<%...%>。我无法在 和 之间进行sessionStorage.getItem('propertyState')比较state.id。有人可以指导我吗?

4

2 回答 2

0

尝试在页面上打印状态,然后在js中使用这个数组。

var states = <%= states %>;
var stateToFind = sessionStorage.getItem('propertyState');
for(var i=0;i<states.length;i++){
 /** do staff**/
}
于 2015-07-30T05:13:02.760 回答
0

谢谢亚历克斯。我做了这样的事情。我不知道为什么我花了这么长时间才弄清楚这一点:

<label>State:</label><br>
<select required id="propState" class="form-control" name="state" style="width:100%">
<option  disabled value="">Select state</option>
<% _.each(states, function(state) { %>
<option value="<%= state.id %>" ><%= state.name %></option>
<script>if((sessionStorage.getItem('propertyState')) == <%=(state.id)%>) {
        var selState = getElementById('propState');
        selState.value = <%= state.name %> ;
        }
</script>
<% }) %>
</select>
于 2015-07-30T06:11:50.273 回答