我有一个从数据库中获取countryname列表的方法,以及一个为任何提供的countryname获取statenames的方法。但不确定如何将国家和州联系起来。
<sx:autocompleter list="countrynames" name="employee.countryname" value="%{employee.countryname}" label="%{getText('label.countryname')}"/>
<sx:autocompleter list="statenames" name="employee.statename" value="%{employee.statename}" label="%{getText('label.statename')}"/>
我有名为'countrynames'的arraylists和类似'statenames',但不知道如何根据上述国家/地区列表中的国家/地区选择动态生成状态名称,以及如何将获取的国家/地区名称连接到方法明确地呼叫该国家的州名单。
答案 0 :(得分:0)
我想给你一些建议
有一个Jquery插件正在使用中,它将为您提供您正在寻找的大部分功能,请查看A_simple_Doubleselect_with_Topics。
我不是这个插件的崇拜者,因为虽然它为我们提供了很多优秀的小部件和功能,但它限制了我们很多实现
我的建议是使用以下方法
在第一个下拉列表中添加一个on-change事件并创建一个函数,您将填充第二个下拉列表
function fill statenames(countryID)
var formInput='country='+countryID;
$.getJSON('search/getStateNames',formInput,function(data) {
$("#employee.statename option:first").val("-1").text("Please select state");
$('.result').html('' + data.states + '');
$.each(data.states ,function(index, value){
var stateid= document.getElementById("state");
var option=new Option(value,value);
try{
stateid.add(option);
}
catch(e){
stateid.appendChild(option);
}
});
});
public class StateListAction extends ActionSupport{
private String country;
// getter and setter
private List<String> states;
//getter and setter
public String getStateList(){
states=fillStatebasedonCountry(country);
return SUCCESS;
}
}