jquery 级联

来源:互联网 发布:网络公选课学分 编辑:程序博客网 时间:2024/05/17 07:52

本资源参考:http://zmx.javaeye.com/blog/648733

怎样才能按期待的效果填充到下拉框中

这是一个Servlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
  //获取第一个下拉框中的值
String firstValue = request.getParameter("keyword");
String userName = URLDecoder.decode(firstValue, "GBK");
if (firstValue.equals("BWM")) {
System.out.println(firstValue);
List secondList = new ArrayList();
secondList.add("a");
secondList.add("b");
secondList.add("c");
JSONArray json = new JSONArray();
//错误json.put(secondList);
out.println(json.toString());
}
修改如下:

 json.put(secondList);
  有问题 JSONArray 没有put 方法吧;
  JSONArray json = null;
  List list = new ArrayList();
  list.add("li录播");
  list.add("oyyy");
  json = JSONArray.fromObject(list);
  out.print(json);
  再在回调函数中 通过遍历 json对象就可以了


}

这是js代码
$(document).ready(function(){

//找到三个下拉框
var carnameSelect = $(".carname").children("select");
var cartypeSelect = $(".cartype").children("select");
var wheelSelect = $(".wheeltype").children("select");


//给三个下拉框注册事件
carnameSelect.change(function(){

//1、找到下拉框的值
var varnameValue = $(this).val();
//2、如果下拉框所选值不为空,则将该值传送给服务器
if(varnameValue != "")
{
$.post("ChainServlet",{keyword:varnameValue,type:"top"},function(data){

if(data.length !=0) 
{

//解析返回的汽车类型数据,并填充到汽车类型的下拉框中

  //-----------------------------问题就出在这里啦,获取的data显示的值是 a,b,c的一个字符串
for (var i = 0; i < data.length; i++) {
$("<option value='" + data[i] + "'>" + data[i] + "</option>").appendTo(cartypeSelect);
}
//让第二个下拉框显示
cartypeSelect.parent().show();

//让第一个后面的指示图片显示出来
carnameSelect.next().hide();
}
else
{
alert("kong");

}

},"json");


}else
{
//如果下拉框所选的值为空,则要隐藏第二个下拉框的span要隐藏以来,
cartypeSelect.parent().hide();
//第一个下拉框后面指示的图片也要隐藏起来
cartypeSelect.next().hide();