将 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>

并从您的标签中删除选项