Jquery+Ajax下拉框级联查询
Jquery代码
<script type="text/javascript">
$(function(){
//提交事件
$("#ImageButton1").click(function(){
//省Id
var provinceId=$("#selProvince").val();
//市Id
var cityId=$("#selCity").val();
//区县Id
var districtId=$("#selDistrict").val();
//把省市区ID赋值到隐藏域
$("#hidProvince").attr("value",provinceId);
$("#hidCity").attr("value",cityId);
$("#hidDistrict").attr("value",districtId);
});
//加载地区
var area=$("#hidArea").val(); //后台将(省,市,区)ID放到隐藏域hidArea
// alert(area);
loadArea(0,0,area);//Ajax方法查询默认(北京,北京,朝阳)
$("#selProvince").change(function(){//存放省的下拉框发生变化时调用Ajax
loadArea(this.value,1,"");
});
$("#selCity").change(function(){//存放市的下拉框发生变化时调用Ajax
loadArea(this.value,2,"");
});
//id:省(0)市县id,type:0为省,1为市,2县,area:北京,北京,朝阳区
function loadArea(id,type,area){
$.ajax({
type:"get",
url:"/ashx/GetArea.ashx",
data:{Id:id,type:type},
dataType:"json",
success:function(data){
var str="";
var areaArr=area.split(",");
if(type==0){
$.each(data,function(i,item){
str=str+"<option value=\""+item.Id+"\">"+item.Name+"</option>";
})
var selProvince=$("#selProvince");
selProvince.html(str);
if(areaArr[0])
{
selProvince.val(areaArr[0]);
}
loadArea(selProvince.val(),1,area);
}
if(type==1){
$.each(data,function(i,item){
str=str+"<option value=\""+item.Id+"\">"+item.Name+"</option>";
})
var selCity=$("#selCity");
selCity.html(str);
if(areaArr[1])
{
selCity.val(areaArr[1]);
}
loadArea(selCity.val(),2,area);
}
if(type==2){
$.each(data,function(i,item){
str=str+"<option value=\""+item.Id+"\">"+item.Name+"</option>";
})
var selDistrict=$("#selDistrict");
selDistrict.html(str);
if(areaArr[2])
{
selDistrict.val(areaArr[2]);
}
//$("#selDistrict")
}
}
});
}
</script>
aspx页面代码
<div class="ptop1">填写联系地址:<span class="spanlv">*</span></div>
<div class="ptop2">
<select id="selProvince" runat="server">
</select>
<select id="selCity" runat="server">
</select>
<select id="selDistrict" runat="server">
</select>
<input type="hidden" id="hidArea" value="" runat="server" />
<input type="hidden" runat="server" id="hidProvince" />
<input type="hidden" runat="server" id="hidCity" />
<input type="hidden" runat="server" id="hidDistrict" />
</div>
一般处理程序 源码
using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using BLL;
using Newtonsoft.Json;
using System.Collections.Generic;
using Model;
using Common;
using Model.Linq;
namespace Web.ashx
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class GetArea : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
int id = 0;
string strId = context.Request.QueryString["Id"];
//类型:省0,市1,县2
string type = context.Request.QueryString["type"];
if (!string.IsNullOrEmpty(strId))
{
id = Convert.ToInt32(strId);
}
phDataContext ph = new phDataContext();
string result = "";
if (type == "0")
{
result = ConvertHelper.DataToJson(ph.Province.Select(p=> new { p.Id, p.Name}));
context.Response.Write(result);
}
if (type == "1")
{
result = ConvertHelper.DataToJson(ph.City.Where(c => c.ProvinceId == id).Select(c => new { c.Id,c.Name }));
context.Response.Write(result);
}
if (type == "2")
{
result = ConvertHelper.DataToJson(ph.District.Where(c => c.CityId == id).Select(d => new { d.Id, d.Name }));
context.Response.Write(result);
}
//context.Response.Write(result);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
后台代码
//这个就是给hidArea隐藏域赋值
if (!pm01.Area.IsNullOrEmptyOrWhiteSpace())
{
//this.hidArea.Value = pm01.Area;
hidArea.Value = pm01.ProvinceId + "," + pm01.CityId + "," + pm01.DistrictId;
}
自从用了ajax就停不下来了 (ˇˍˇ) 想~
Jquery+Ajax下拉框级联查询的更多相关文章
- ajax,下拉框级联
js代码: $(document).ready(function() { $("#type1").change(function(){ var type1Code=$(" ...
- Java Swing应用程序 JComboBox下拉框联动查询
在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...
- jQuery对下拉框Select操作总结
jQuery对下拉框Select操作总结 转自网络,留做备用 jQuery获取Select元素,并选择的Text和Value: 1. $("#select_id").change( ...
- layui select 下拉框 级联 动态赋值 与获取选中值
//下拉框必须在 class="layui-form" 里 不然监听事件没有作用 <div class="layui-form" > <div ...
- jquery div 下拉框焦点事件
这章与上一张<jquery input 下拉框(模拟select控件)焦点事件>类似 这章讲述div的焦点事件如何使用 div的焦点事件与input的焦点事件区别在于 需要多添加一个属性: ...
- Jquery操作下拉框(DropDownList)实现取值赋值
Jquery操作下拉框(DropDownList)想必大家都有所接触吧,下面与大家分享下对DropDownList进行取值赋值的实现代码 1. 获取选中项: 获取选中项的Value值: $('sele ...
- jquery 获取下拉框值与select text
下面先介绍了很多jquery获取select属性的方法,同时后面的实例我们讲的是jquery 获取下拉框值与select text代码. 下面先介绍了很多jquery获取select属性的方法,同时后 ...
- js,jquery获取下拉框选中的option
js获取select选中的值: var sel=document.getElementById("select1"); var index = sel.selectedIndex; ...
- Jquery操作下拉框(DropDownList)的取值赋值实现代码(王欢)
Jquery操作下拉框(DropDownList)的取值赋值实现代码(王欢) 1. 获取选中项: 获取选中项的Value值: $('select#sel option:selected').val() ...
随机推荐
- 材价看板(1)- 如何建立你的第一个kanban,看看这些暴露的问题你们有没有?
今年负责一个老产品新团队,和几年前的指标组一样,现在的团队没有采用什么研发方法,于是我开始了团队的看板之旅. 12月22日给材价整个部门的产品研发相关人员做了一次kanban工作坊培训, 以及敏 ...
- JAVA 设计模式 迭代器模式
用途 迭代器模式 (Iterator) 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 迭代器模式是一种行为型模式. 结构
- 【Swift学习】Swift编程之旅---可选链(二十一)
可选链Optional Chaining是一种可以在当前值可能为nil的可选值上请求和调用属性.方法及下标的方法.如果可选值有值,那么调用就会成功:如果可选值是nil,那么调用将返回nil.多个调用可 ...
- [译]学习IPython进行交互式计算和数据可视化(五)
第四章:交互式绘图接口 本章我们将展示Python的绘图功能以及如何在IPython中交互式地使用它们. NumPy为处理大量的多维数组结构的数据提供了高效的方法.但是看行行列列的数字总不如直接看曲线 ...
- MVC过滤器的用法
APS.NET MVC中的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. 在Asp.netMvc中当你有以下及类似 ...
- 把DataTable转换为泛型List<T>或是JSON
在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable.为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为 ...
- asp.net页面后退,重复弹出上一页对话框处理办法
我们在实例中,虽然页面内有导航,但是用户使用的时候难免会使用浏览器的后退按钮. 时常会发现,当后退的时候,上一页的对话框会自动弹出,下面是解决办法. 问题:使用此js代码,后退按钮时,重复显示对话框内 ...
- 电脑Windows使用中遇到的那些问题
Win64位注册表导入方法 64位Windows操作系统注册表不同于32位Windows操作系统,Win64 位版本分为 32 位注册表项和 64 位注册表项.默认 64 位版本注册表编辑器 (Reg ...
- iOS阶段学习第20天笔记(MRC内存管理)
iOS学习(OC语言)知识点整理 一.OC中的内存管理 1)概念:内存管理的对象为所有继承了NSObject的对象,对基本数据(如:int .float.double...)无效 OC中采用 ...
- 炉石传说 C# 开发笔记(6月底小结)
炉石传说的开发,已经有30个工作日了. 关于法术的定义方法,有过一次重大的变更:法术效果是整个炉石的核心,正是因为丰富的法术效果,才造就了炉石的可玩性. 原来构思的时候,对于法术效果没有充分的理解,所 ...