基于Bootstrap实现城市三级联动


Posted in Javascript onNovember 23, 2017

本文实例为大家分享了Bootstrap实现城市三级联动的具体代码,供大家参考,具体内容如下

HTML代码部分

<div class="form-group">
  <div class="col-sm-2 text-center">
   省
  </div>
  <div class="col-sm-2">
   <select class="form-control" name="Province" id="Province">
   <option>==请选择===</option>
   </select>


  </div>
  <div class="col-sm-1 text-center">
   市
  </div>
  <div class="col-sm-2">
   <select class="form-control" name="City" id="City">
   <option>==请选择===</option>
   </select>
  </div>
  <div class="col-sm-1 text-center">
  县/区
  </div>
  <div class="col-sm-2">
   <select class="form-control" name="Village" id="Village">
   <option>==请选择===</option>
   </select>
  </div>
  </div>

JS 代码部分

$(function () {


 //默认绑定省
 ProviceBind();
 //绑定事件
 $("#Province").change( function () {
 CityBind();
 })
 
 $("#City").change(function () {
 VillageBind();
 })
 
 


})
function Bind(str) {
 alert($("#Province").html());
 $("#Province").val(str);


}
function ProviceBind() {
 //清空下拉数据
 $("#Province").html("");



 var str = "<option>==请选择===</option>";
 $.ajax({
 type: "POST",
 url: "/Home/GetAddress",
 data: { "parentiD": "", "MyColums": "Province" },
 dataType: "JSON",
 async: false,
 success: function (data) {
  //从服务器获取数据进行绑定
  $.each(data.Data, function (i, item) {
  str += "<option value=" + item.Id + ">" + item.MyTexts + "</option>";
  })
  //将数据添加到省份这个下拉框里面
  $("#Province").append(str);
 },
 error: function () { alert("Error"); }
 });


 
 
}
function CityBind() {


 var provice = $("#Province").attr("value");
 //判断省份这个下拉框选中的值是否为空
 if (provice == "") {
 return;
 }
 $("#City").html("");
 var str = "<option>==请选择===</option>";


 $.ajax({
 type: "POST",
 url: "/Home/GetAddress",
 data: { "parentiD": provice, "MyColums": "City" },
 dataType: "JSON",
 async: false,
 success: function (data) {
  //从服务器获取数据进行绑定
  $.each(data.Data, function (i, item) {
  str += "<option value=" + item.Id + ">" + item.MyTexts + "</option>";
  })
  //将数据添加到省份这个下拉框里面
  $("#City").append(str);
 },
 error: function () { alert("Error"); }
 });


}
function VillageBind() {


 var provice = $("#City").attr("value");
 //判断市这个下拉框选中的值是否为空
 if (provice == "") {
 return;
 }
 $("#Village").html("");
 var str = "<option>==请选择===</option>";
 //将市的ID拿到数据库进行查询,查询出他的下级进行绑定
 $.ajax({
 type: "POST",
 url: "/Home/GetAddress",
 data: { "parentiD": provice, "MyColums": "Village" },
 dataType: "JSON",
 async: false,
 success: function (data) {
  //从服务器获取数据进行绑定
  $.each(data.Data, function (i, item) {
  str += "<option value=" + item.Id + ">" + item.MyTexts + "</option>";
  })
  //将数据添加到省份这个下拉框里面
  $("#Village").append(str);
 },
 error: function () { alert("Error"); }
 });
 //$.post("/Home/GetAddress", { parentiD: provice, MyColums: "Village" }, function (data) { 
 // $.each(data.Data, function (i, item) {
 // str += "<option value=" + item.Id + ">" + item.MyTexts + "</option>";
 // })
 // $("#Village").append(str);
 //})
}

控制器+数据库 代码部分

public ActionResult GetAddress(string parentiD, string MyColums)
 {
  ISysFieldBll sysfileBll = BLLFactory.DataAccess.GetBll<ISysFieldBll>();
  Result result = new Result();
  result.Data = sysfileBll.GetSysFieldParentId(parentiD,MyColums);
  return Json(result,JsonRequestBehavior.AllowGet);
 }

表代码 

CREATE TABLE [dbo].[SysField](
[Id] [nvarchar](36) NOT NULL,
[MyTexts] [nvarchar](200) NOT NULL,
[ParentId] [nvarchar](36) NULL,
[MyTables] [nvarchar](200) NULL,
[MyColums] [nvarchar](200) NULL,
[Sort] [int] NULL,
[Remark] [nvarchar](4000) NULL,
[CreateTime] [datetime] NULL,
[CreatePerson] [nvarchar](200) NULL,
[UpdateTime] [datetime] NULL,
[UpdatePerson] [nvarchar](200) NULL,
)

SQL查询代码  

string sql = @"SELECT * FROM SysField WHERE 1=1 and MyTables='SysPerson'and MyColums=@MyColums and ParentId=@ParentId ";

最重要的也就是数据

这是省市县的表格数据,直接导入到数据库过后就能使用        

这是下载地址:三级联动

最终的效果图:

基于Bootstrap实现城市三级联动

最重要的也就是数据。

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript prototype 原型链
Mar 12 Javascript
JavaScript参数个数可变的函数举例说明
Oct 10 Javascript
Jquery弹出层插件ThickBox的使用方法
Dec 09 Javascript
Javascript中typeof 用法小结
May 12 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
JS给swf传参数的实现方法
Sep 13 Javascript
node+express框架中连接使用mysql(经验总结)
Nov 10 Javascript
详解javascript设计模式三:代理模式
Mar 25 Javascript
webpack4 从零学习常用配置(小结)
May 28 Javascript
深入解析koa之中间件流程控制
Jun 17 Javascript
Vuex中实现数据状态查询与更改
Nov 08 Javascript
解决vue中的无限循环问题
Jul 27 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 #Javascript
基于vue-cli创建的项目的目录结构及说明介绍
Nov 23 #Javascript
sublime text配置node.js调试(图文教程)
Nov 23 #Javascript
Vue代码分割懒加载的实现方法
Nov 23 #Javascript
初探js和简单隐藏效果的实例
Nov 23 #Javascript
详解如何在angular2中获取节点
Nov 23 #Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 #Javascript
You might like
Protoss热键控制
2020/03/14 星际争霸
PHP编实现程动态图像的创建代码
2008/09/28 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
JS中的作用域链
2017/03/01 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
python 文本单词提取和词频统计的实例
2018/12/22 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
Keras实现DenseNet结构操作
2020/07/06 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
党风廉政承诺书
2014/03/27 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
KVM基础命令详解
2022/04/30 Servers