是否可以动态重新加载表单:根据另一个表单的值选择值:select

我在表单中有一对州/城市下拉选项。 应根据用户选择的状态动态更改城市下拉。 我在Spring MVC上使用jQuery。

我的状态/城市的对象是HashMaps的HashMap,因此,对于状态’01’(第一个键),我有城市001(第二个键) – city1(值)和002(第二个键) – city2(值) :

LinkedHashMap<String,LinkedHashMap> enumsCountyByDistrict = new LinkedHashMap<String,LinkedHashMap>(); LinkedHashMap districtCounties = new LinkedHashMap(); for (City en : cities) districtCounties.put(en.getCode(), en.getDescription()); enumsCountyByDistrict.put(district, districtCounties); 

其中cities是我从数据库中检索的列表。

我将此对象传递给我的视图:

 modelAndView.addObject("countiesByDistrict", enumsCountyByDistrict); modelAndView.addObject("districts", districts); 

区域是不同州的名单。

现在,我的JSP使用form显示值:选择:

  

我正在硬编码县的区域[ ’13’ ]来显示13区的城市,它确实没问题,但现在,显然,我希望它根据在addressdistrictforms选择的代码进行更改:选择。

有人可以帮忙吗?

进行ajax调用以获取城市列表并更新您的其他选择框。 如果您不想进行ajax调用或城市列表很小,请在初始页面请求中获取两个详细信息并使用javascript / jquery进行更新。 检查这个问题jquery-json-to-populate-dropdown-list ,

我想我遇到了一个非常相似的问题,我的结构如下:

 
New Rule
Name Ambit Description
Attribute Value

我需要使用ids * add_rule_form_rules [i] .attribute *以dinamically方式更新选项中可用的选项值

所以我使用了以下jquery代码:

  //Ajax Load the list of attributes for a specific ambit function attributePerAmbit(form_name, ambit) { $.ajax({ type: "GET", url: "/url/tomyapp/=" + ambit, dataType: "json", async: false, success: function (data) { var html = ''; for (var i = 0; i < data.length; i++) { html += ''; } $("#" + form_name + " .rule_table .rule_row select").html(html); } }); }; $("#add_rule_form_ambit").change(function () { attributePerAmbit('add_rule_form', $(this).val()); }); 

当然,您仍然需要服务器端组件返回一个JSON(如果您愿意,还是xml)响应,其中包含可用于特定范围的值