基于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 相关文章推荐
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
JavaScript中两个感叹号的作用说明
Dec 28 Javascript
Javascript获取统一管理的提示语(message)
Feb 03 Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
node中间层实现文件上传功能
Jun 11 Javascript
layui表格 返回的数据状态异常的解决方法
Sep 10 Javascript
解决layer弹出层自适应页面大小的问题
Sep 16 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
Vue项目打包编译优化方案
Sep 16 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
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
php表单提交实例讲解
2015/11/12 PHP
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
学习jQuey中的return false
2015/12/18 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
js解决movebox移动问题
2016/03/29 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
使用PYTHON创建XML文档
2012/03/01 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
django2.0扩展用户字段示例
2019/02/13 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
简单了解python元组tuple相关原理
2019/12/02 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
部队2015年终工作总结
2015/04/02 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
浅谈克隆 JavaScript
2021/11/02 Javascript