基于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 相关文章推荐
11款新鲜的jQuery插件[附所有demo下载]
Jan 24 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
Aug 27 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
详解webpack介绍&amp;安装&amp;常用命令
Jun 29 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
微信小程序支付前端源码
Aug 29 Javascript
vue实现固定位置显示功能
May 30 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
Vue3 中的数据侦测的实现
Oct 09 Javascript
微信小程序自定义头部导航栏(组件化)
Nov 15 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实现时间轴函数代码
2011/10/08 PHP
深入php多态的实现详解
2013/06/09 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
node.js实现端口转发
2016/04/14 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
python 内置模块详解
2019/01/01 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
Python对象与引用的介绍
2019/01/24 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
python自定义函数def的应用详解
2020/06/03 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
《这儿真好》教学反思
2014/02/22 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
护士医德考评自我评价
2015/03/03 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL