将 select 下拉值分配给 Spring MVC 变量
Assign a select dropdown value to Spring MVC variable
您好,我想显示一些数据时遇到问题。
我有一个国家列表,每个国家都包含一个区域列表。
选择国家后我想做什么。我希望我的第二个列表采用 pays.regions
在我的表格下方:
<form:form method="POST" modelAttribute="modelForm" action="${myAction}">
<label>Pays</label>
<form:select path="isoCode">
<form:options items="${pays}" itemValue="isocode" itemLabel="name"/>
</form:select>
<label>regions</label>
<form:select path="region>
<form:options items="valueSelected.regions" itemValue="region" itemLabel="name"/>
</form:select>
</form:form>
我想把 select 从 pays 中得到的值放在一个变量中,然后在 select 区域中使用它。
提前致谢。
此致,
您将 JavaScript 用于此用例
使用这个:
<script type="text/javascript">
var pays = new Array();
<c:forEach items="${pays}" var="country" varStatus="status">
var regions = new Array();
<c:forEach items="${country.regions}" var="region" varStatus="status">
regions.push({id: "${region.isocode}", name:"${region.name}"});
</c:forEach>
countries.push({id: "${country.isocode}", name:"${country.name}" , regions: regions });
</c:forEach>
function functionOnChange()
{
let country = document.getElementById('your-country-selector').value;
let regionsCountry = countries.find(c => c.id == country).regions;
let selectorRegions = document.getElementById('your-region-selector');
selectorRegions.innerHTML = "";
regionsCountry.forEach(r => {
let option = document.createElement("option");
option.value = r.isocode
option.innerHTML = r.name
selectorRegions.appendChild(option)
});
}
</script>
并从您的标签中删除选项
您好,我想显示一些数据时遇到问题。
我有一个国家列表,每个国家都包含一个区域列表。
选择国家后我想做什么。我希望我的第二个列表采用 pays.regions
在我的表格下方:
<form:form method="POST" modelAttribute="modelForm" action="${myAction}">
<label>Pays</label>
<form:select path="isoCode">
<form:options items="${pays}" itemValue="isocode" itemLabel="name"/>
</form:select>
<label>regions</label>
<form:select path="region>
<form:options items="valueSelected.regions" itemValue="region" itemLabel="name"/>
</form:select>
</form:form>
我想把 select 从 pays 中得到的值放在一个变量中,然后在 select 区域中使用它。
提前致谢。
此致,
您将 JavaScript 用于此用例
使用这个:
<script type="text/javascript">
var pays = new Array();
<c:forEach items="${pays}" var="country" varStatus="status">
var regions = new Array();
<c:forEach items="${country.regions}" var="region" varStatus="status">
regions.push({id: "${region.isocode}", name:"${region.name}"});
</c:forEach>
countries.push({id: "${country.isocode}", name:"${country.name}" , regions: regions });
</c:forEach>
function functionOnChange()
{
let country = document.getElementById('your-country-selector').value;
let regionsCountry = countries.find(c => c.id == country).regions;
let selectorRegions = document.getElementById('your-region-selector');
selectorRegions.innerHTML = "";
regionsCountry.forEach(r => {
let option = document.createElement("option");
option.value = r.isocode
option.innerHTML = r.name
selectorRegions.appendChild(option)
});
}
</script>
并从您的标签中删除选项