省市县级联,使用ajax,并且使用ul模拟select下拉

前台代码

js

//使用jquery效果展示鼠标放到省份的ul下拉展示

$("#province").hover(function(){

$("#province ul").toggle();

})

//使用jquery效果展示鼠标放到城市的ul下拉展示

$("#city").hover(function(){

$("#city ul").toggle();

})

//使用jquery效果展示鼠标放到区县的ul下拉展示

$("#area").hover(function(){

$("#area ul").toggle();

})

//改变省份触发的函数

function changePro(ele){

$("#showPro").text(ele.innerText);

$("#showCity").text("市");

$("#showArea").text("区");

$("#pid").val(ele.value);

$("#cid").val("");

$("#aid").val("");

$.ajax({

url:‘getAjaxJson.action‘,

data:{type:‘city‘,id:ele.value},

type:‘POST‘,

success:function(data){

var cityList = data.list;

var ulEle = $("#cities");

ulEle.children().remove();

for(var i=0;i<cityList.length;i++){

ulEle.append("<li onclick=‘changeCity(this)‘ value=" + cityList[i].cityid + "style=‘border: 0px‘>"+cityList[i].city+"</li>");

}

}

});

}

//改变城市触发的函数

function changeCity(ele){

$("#showCity").text(ele.innerText);

$("#showArea").text("区");

$("#cid").val(ele.value);

$("#aid").val("");

$.ajax({

url:‘getAjaxJson.action‘,

data:{type:‘area‘,id:ele.value},

type:‘POST‘,

success:function(data){

var areaList = data.list;

var ulEle = $("#areas");

ulEle.children().remove();

for(var i=0;i<areaList.length;i++){

ulEle.append("<li  onclick=‘changeArea(this)‘ value=" + areaList[i].areaid + "style=‘border: 0px‘>"+areaList[i].area+"</li>");

}

}

});

}

//改变区县触发的函数

function changeArea(ele){

$("#showArea").text(ele.innerText);

$("#aid").val(ele.value);

}

html代码

<span class="list_title_1 fl" id="province">

<span class="fl" id="showPro" style="font-size:18px;padding-top:5px;width:170px;float:left">省</span><img class="fl" src="${configBean.speedDomian}/images/pc/arr_down.png" width=10px height=10px/>

<ul>

<c:forEach items="${provinceList}" var="province">

<li onclick="changePro(this)" style="border: 0px" value="${province.provinceid}">${province.province}</li>

</c:forEach>

</ul>

</span>

<span class="list_title_1 fl" style="margin-left:12px;" id="city">

<span class="fl" id="showCity" style="font-size:18px;padding-top:5px;width:180px">市</span><img class="fl" src="${configBean.speedDomian}/images/pc/arr_down.png" width=10px height=10px/>

<ul id="cities">

</ul>

</span>

<span class="list_title_1 fl" style="margin-left:12px;" id="area">

<span class="fl" id="showArea" style="font-size:18px;padding-top:5px;width:180px">区</span><img class="fl" src="${configBean.speedDomian}/images/pc/arr_down.png" width=10px height=10px/>

<ul id="areas">

</ul>

</span>

模拟select下拉的css代码

.list_title_1{ width:200px; height:50px; border:1px solid #d6d6d6; line-height:34px; text-indent:10px; font-size:14px; color:#999; cursor:pointer; margin-top:-7px;}

.list_title_1 span{ width:70px; margin-left:0px;}

.list_title_1 img{ float:right; margin:15px 5px 0 0}

.list_title_1 ul{ display:none; width:200px; position:absolute; border:1px solid #d6d6d6; border-bottom:none; margin-top:34px; margin-left:-1px;}

.list_title_1 ul li{ width:100%; height:34px; line-height:36px; border-bottom:1px solid #d6d6d6; background:#fff; cursor:pointer}

.list_title_1 ul li:hover{ background:#43B1E8; color:#fff;}

获取城市,区县的java代码

public void getAjaxJson(){//此处使用的struts2的框架

try {

HttpServletResponse response = getResponse();

response.setContentType("application/json;charset=UTF-8");

PrintWriter out = response.getWriter();

String type = getRequest().getParameter("type");

String id = getRequest().getParameter("id");

Map<String,Object> map = new HashMap<String,Object>();

JSONObject jo = null;

if(type!=null&&"city".equals(type)){

hql="from cities where  provinceid=‘" + id + "‘";

List<cities> list = cdao.getListObj(hql,new cities());

map.put("type", type);

map.put("list", list);

jo = JSONObject.fromObject(map);

}else if(type!=null&&"area".equals(type)){

hql="from areas where  cityid=‘" + id + "‘";

List<areas> list = cdao.getListObj(hql,new areas());

map.put("type", type);

map.put("list", list);

jo = JSONObject.fromObject(map);

}

String str = jo.toString();

out.print(str);

out.close();

} catch (Exception e) {

e.printStackTrace();

}

}

//对应stuts2的对应配置文件片段

<!-- 获取省市json -->

<action name="getAjaxJson" class="action.unset.ProjectTraderAction" method="getAjaxJson">

</action>

说明 下拉的省份是放在request域里面的,没有放到ajax里面请求

时间: 2024-08-07 09:34:28

省市县级联,使用ajax,并且使用ul模拟select下拉的相关文章

联合县城市,采用ajax,而使用ul模拟select下拉

接待处代码 js //采用jquery展示鼠标放到省ul下拉显示 $("#province").hover(function(){ $("#province ul").toggle(); }) //使用jquery效果展示鼠标放到城市的ul下拉展示 $("#city").hover(function(){ $("#city ul").toggle(); }) //使用jquery效果展示鼠标放到区县的ul下拉展示 $(&quo

模拟select下拉框之多选(数据源采用模拟Ajax数据--原创)

最近需要一个下拉多选,本来想偷懒的,所以在网上百度了一番,最终还是发现没有一个符合自己要求的,所以我自己写了一个插件.下面是GIF动态效果图展示 相信大家已经看到效果了,接下来就是我的代码展示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模拟select下拉框之多选</title> <style

自己用ul模拟实现下拉多选框,

模拟实现下拉多选框 效果如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" type="text/css" href="../js/plugins/layui/css/lay

用div,ul,input模拟select下拉框

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>案例测试</title> 6 <link rel="stylesheet" href="css/all.css" /> 7 <script type="text/javascript" src=&

修改option的宽高无效,用div+ul做select下拉菜单

有时候设计稿的option选项的宽高都不是默认尺寸,想要修改宽高,用padding或者margin都没有用,所以就用div+ul+jq实现. html <div id="city"> <p class="title">查找新世界城市活动信息</p> <p>每个城市的有不同的活动信息,请自主查询您所需要了解的城市</p> <form action="" method="po

ajax 遍历select 下拉框

html :<select id="type"   > </select> js代码: <script type="text/javascript">  //动态绑定下拉框项          function addnotice() {              $.ajax({                  url: "${pageContext.request.contextPath}/dictionary/j

SpringMVC之ajax+select下拉框交互常用方式

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="../js/jquery-1.8.0.min.js"></script> <script> //a

ThinkPHP中ajax绑定select下拉框无法显示

html代码: 控制器代码: 其中的<option value="{$vo.gradeId}">{$one.gradeName}</option> 在操作过程中无法自动填充,下拉框有位置,却无法填充数据库的原因是 数据库的命名统一 一致,不能使用驼峰命名法来命名数据库的表的名字. 可以使用下划线,横线来命名表.

自己编写jQuery插件 之 无限级联下拉框

因为是级联,所以数据必须是树型结构的,我这里的测试数据如下: 看下效果图: 1.>图一: 2.>图二: 3.>图三: 由图可知,下拉框的个数并不是写死的,而是动态加载的.每当下拉框选择改变的时候,会发送一次ajax请求,请求成功返回json格式数据,当返回的数据不为空时(即有子节点时),则会向页面中添加一个下拉框,没有则不添加. 插件的实现代码如下: (function ($) { $.fn.CascadingSelect = function (options) { //默认参数设置