这篇文章主要介绍基于jQuery Ajax怎么实现下拉框无刷新联动,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
具体内容如下
HTML代码:
@{ Layout = null; } @using DAL; @using System.Data; @{ AreaDal areaDal = new AreaDal(); string areaId = ViewBag.areaId; DataRow drArea = areaDal.GetArea(areaId); string countyId = drArea == null ? "-1" : drArea["countyId"].ToString(); DataRow drCounty = areaDal.GetCounty(countyId); string cityId = drCounty == null ? "-1" : drCounty["cityId"].ToString(); DataRow drCity = areaDal.GetCity(cityId); string provinceId = drCity == null ? "-1" : drCity["provinceId"].ToString(); } <!DOCTYPE html> <html> <head> <title>商圈选择</title> <script type="text/javascript"> //选中 function select(selId, id, callback) { $("#" + selId).val(id); if (callback) callback(); } //获取省列表 function getProvinces(callback) { $.ajax({ type: "POST", url: "@Url.Content("~/Backstage/Area/GetProvinces")", data: {}, success: function (text) { $("#province").html(text); if (callback) callback(); }, error: function () { } }); } //获取市列表 function getCities(pid, callback) { $.ajax({ type: "POST", url: "@Url.Content("~/Backstage/Area/GetCities")", data: { "provinceId": pid, }, success: function (text) { $("#city").html(text); if (callback) callback(); }, error: function () { } }); } //获取区县列表 function getCounties(pid, callback) { $.ajax({ type: "POST", url: "@Url.Content("~/Backstage/Area/GetCounties")", data: { "cityId": pid, }, success: function (text) { $("#county").html(text); if (callback) callback(); }, error: function () { } }); } //获取商圈列表 function getAreas(pid, callback) { $.ajax({ type: "POST", url: "@Url.Content("~/Backstage/Area/GetAreas")", data: { "countyId": pid, }, success: function (text) { $("#area").html(text); if (callback) callback(); }, error: function () { } }); } </script> </head> <body> <select id="province"> <option value="-1">==请选择==</option> </select> <select id="city"> <option value="-1">==请选择==</option> </select> <select id="county"> <option value="-1">==请选择==</option> </select> <select id="area"> <option value="-1">==请选择==</option> </select> <script type="text/javascript"> //选择省 $("#province").change(function () { var id = $(this).find("option:selected").val(); getCities(id, function () { $("#city").change(); }); }); //选择市 $("#city").change(function () { var id = $(this).find("option:selected").val(); getCounties(id, function () { $("#county").change(); }); }); //选择区县 $("#county").change(function () { var id = $(this).find("option:selected").val(); getAreas(id, function () { $("#area").change(); }); }); getProvinces(function () { select("province", '@provinceId', function () { getCities('@provinceId', function () { select("city", '@cityId', function () { getCounties('@cityId', function () { select("county", '@countyId', function () { getAreas('@countyId', function () { select("area", '@areaId'); }); }); }); }); }); }); }); </script> </body> </html>
Controller代码:
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web.Mvc; using DAL; namespace Controllers.Backstage { /// <summary> /// 行政区划 /// </summary> public class AreaController : AdminBaseController { #region 构造函数及变量 private SQLiteHelper.SQLiteHelper sqliteHelper; private AreaDal areaDal; public AreaController() { sqliteHelper = new SQLiteHelper.SQLiteHelper(); areaDal = new AreaDal(); } #endregion #region 行政区划商圈级联选择页面 public ActionResult AreaSelect() { return PartialView(); } #endregion #region 获取全部省 public ActionResult GetProvinces() { DataTable dt = areaDal.GetProvincesAll(); StringBuilder sbHtml = new StringBuilder(); sbHtml.Append("<option value='-1'>==请选择==</option>"); foreach (DataRow dr in dt.Rows) { sbHtml.AppendFormat("<option value='{0}'>{1}</option>", dr["id"].ToString(), dr["name"].ToString()); } return Content(sbHtml.ToString()); } #endregion #region 根据省获取市 public ActionResult GetCities(string provinceId) { DataTable dt = areaDal.GetCities(provinceId); StringBuilder sbHtml = new StringBuilder(); sbHtml.Append("<option value='-1'>==请选择==</option>"); foreach (DataRow dr in dt.Rows) { sbHtml.AppendFormat("<option value='{0}'>{1}</option>", dr["id"].ToString(), dr["name"].ToString()); } return Content(sbHtml.ToString()); } #endregion #region 根据市获取区县 public ActionResult GetCounties(string cityId) { DataTable dt = areaDal.GetCounties(cityId); StringBuilder sbHtml = new StringBuilder(); sbHtml.Append("<option value='-1'>==请选择==</option>"); foreach (DataRow dr in dt.Rows) { sbHtml.AppendFormat("<option value='{0}'>{1}</option>", dr["id"].ToString(), dr["name"].ToString()); } return Content(sbHtml.ToString()); } #endregion #region 根据区县获取商圈 public ActionResult GetAreas(string countyId) { DataTable dt = areaDal.GetAreas(countyId); StringBuilder sbHtml = new StringBuilder(); sbHtml.Append("<option value='-1'>==请选择==</option>"); foreach (DataRow dr in dt.Rows) { sbHtml.AppendFormat("<option value='{0}'>{1}</option>", dr["id"].ToString(), dr["name"].ToString()); } return Content(sbHtml.ToString()); } #endregion } }
jquery是一个简洁而快速的JavaScript库,它具有独特的链式语法和短小清晰的多功能接口、高效灵活的css选择器,并且可对CSS选择器进行扩展、拥有便捷的插件扩展机制和丰富的插件,是继Prototype之后又一个优秀的JavaScript代码库,能够用于简化事件处理、HTML文档遍历、Ajax交互和动画,以便快速开发网站。
以上是“基于jQuery Ajax怎么实现下拉框无刷新联动”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。