显示项目不是数组的形式提交后
我有我从一个这样的阵列生成的下拉菜单(在该示例中为简洁起见使用假的数据)
var city = document.getElementById("city");
locarr = ["1", "2", "3", "4"];
for(var i=0; i < locarr.length; i++) {
var opt = locarr[i];
var el = document.createElement("option");
el.text = opt;
el.value = opt;
city.add(el);
}
这工作得很好,它填充菜单。然而,当我提交表单和页面重新加载,我想显示初始选择的项目,然后在阵列中的所有其他项目不包括一个,所以我没有重复的条目。
我oldInput.city
值从控制器,它是被张贴在表单提交的价值来。
在目前的状态我有重复的值,一旦表单被提交。
<select class="chosen-select-no-single" name="city" id="city">
<% if (!oldInput.city) { %>
<option value="">Select City</option>
<% } else { %>
<option value="">Select City</option>
<option value="<%= oldInput.city %>" selected>
<%= oldInput.city %>
</option>
<% } %>
</select>
回答如下:
刚刚从HTML删除oldInput。在对条款,你可以这样做:
for(var i=0; i < locarr.length; i++) {
var opt = locarr[i];
var el = document.createElement("option");
el.text = opt;
el.value = opt;
var oldInpt="<%=oldInput%>";
if (oldInpt!=null && opt ==oldInpt.city){
el.selected = true;
}
city.add(el);
}
显示项目不是数组的形式提交后
我有我从一个这样的阵列生成的下拉菜单(在该示例中为简洁起见使用假的数据)
var city = document.getElementById("city");
locarr = ["1", "2", "3", "4"];
for(var i=0; i < locarr.length; i++) {
var opt = locarr[i];
var el = document.createElement("option");
el.text = opt;
el.value = opt;
city.add(el);
}
这工作得很好,它填充菜单。然而,当我提交表单和页面重新加载,我想显示初始选择的项目,然后在阵列中的所有其他项目不包括一个,所以我没有重复的条目。
我oldInput.city
值从控制器,它是被张贴在表单提交的价值来。
在目前的状态我有重复的值,一旦表单被提交。
<select class="chosen-select-no-single" name="city" id="city">
<% if (!oldInput.city) { %>
<option value="">Select City</option>
<% } else { %>
<option value="">Select City</option>
<option value="<%= oldInput.city %>" selected>
<%= oldInput.city %>
</option>
<% } %>
</select>
回答如下:
刚刚从HTML删除oldInput。在对条款,你可以这样做:
for(var i=0; i < locarr.length; i++) {
var opt = locarr[i];
var el = document.createElement("option");
el.text = opt;
el.value = opt;
var oldInpt="<%=oldInput%>";
if (oldInpt!=null && opt ==oldInpt.city){
el.selected = true;
}
city.add(el);
}