我做了两个选择框“州”和“城市”。这里分支的值基于状态填充。这是帮助我做到这一点的代码片段。
@RequestMapping(value = "getBranchlist.htm", method = RequestMethod.GET, headers = "Accept=*/*")
public @ResponseBody String getBranchList(@RequestParam("state")String state) {
ApplicationContext context =
new ClassPathXmlApplicationContext("Beans.xml");
MasterJDBCTemplate dao =
(MasterJDBCTemplate)context.getBean("masterJDBCTemplate");
List<String> fans = dao.getBranchList(state);
String branch = "";
for(String fan : fans)
branch+=fan+",";
if(branch.length()== 0){
branch = "";
}else{
branch = branch.substring(0, branch.length() - 1);
}
return branch;
}
和 jQuery 代码
$(function(){
$("#state").change(function(){
var state = $("#state").val();
$.get("getBranchlist.htm",{ "state":state},function( data ) {
var target = $("#branch");
target.find('option').remove();
target.append($('<option/>').val("").text("---Select"));
if(data == ""){
return false;
}
var opts = data.split(',');
$.each(opts, function(i, opt){
target.append(
$('<option/>').val(jQuery.trim(opt)).text(jQuery.trim(opt)));
});
});
});
});
据我所知,这很好用。
我尝试使用自动完成(显示数据库中的所有分支)功能,如下所示---> http://jqueryui.com/autocomplete/#remote
所以我试着这样做
$(function() {
$( "#branch" ).autocomplete({ source: "getBranchlist.htm" });
}
但是我没有得到输出。我想我必须对控制器进行一些更改才能返回“JSON”。我的控制器应该返回什么?以什么格式?假设我想展示“Ohio”、“Milan”、“Sydney”。