原文地址:https://blog.csdn.net/peiyuanxin/article/details/51992384

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  ";

 

最重要的也就是数据

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

 

http://download.csdn.net/detail/peiyuanxin/9583112

最终的效果图

 

[转]基于BootStrap 的城市三级联动的更多相关文章

  1. 全国城市三级联动 html+js

    全国城市三级联动,没有css,所以屏幕的自适应必须自己想办法,手机端慎用(最好不要用,因为有些我也说不出的展示问题). html页面 <!DOCTYPE html> <html> ...

  2. jquery 城市三级联动

    js代码 /*城市三级联动 * @method cityChange * @param allProvince,allCity,allDistrict */ function cityChange(p ...

  3. 转: javascript实现全国城市三级联动菜单代码

    <html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...

  4. 城市三级联动 AJAX-原生js封装

    话不多说我们先来一张效果图给大家看一下: html代码如下: <!DOCTYPE html><html lang="en"><head> < ...

  5. JS全国城市三级联动

    HTML <select id="s_province" name="s_province"></select> <select ...

  6. 使用mint ui 的picker解决城市三级联动

    <mt-popup v-model="popupVisible" position="bottom"> <div class="po ...

  7. ASP.NET webform基于Jquery,AJAX的三级联动

    主要html代码 <select id="province"> <option value="0">--请选择省份--</opti ...

  8. vue 选城市三级联动

    <div id="example"> <select v-model="prov"> <option v-for="op ...

  9. vue父组件获取子组件页面的数组 以城市三级联动为例

    父组件调用子组件 <Cselect ref="registerAddress"></Cselect> import Cselect from '../../ ...

随机推荐

  1. 【C语言】练习3-3

     题目来源:<The C programming language>中的习题P49  练习2-9: 编写函数expand(s1, s2),将字符串s1中类似于a-z一类的速记符号在字符串s ...

  2. SQL Server 2008中SQL之WaitFor

    SQL Server 2008中SQL应用系列--目录索引 在SQL Server 2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当.但使用更加简捷. 看MSDN: ht ...

  3. STM8在IAR中Option Byte配置

    转http://www.stmcu.org/module/forum/thread-607140-1-1.html 近期帮客户调试STM8的程序使用到OptionByte配置,在网上查询几乎都是介绍如 ...

  4. 来设置IE兼容模式

    来设置IE兼容模式 文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 前言 为了帮助确保你的网页在所有未来的IE版本 ...

  5. DVWA手记——取消登录

    DVWA在渗透测试方面表现相当不错,可以自定义高中低的安全级别.同事为了测试一个小工具,只好取消登录认证.本以为Config可以设置,结果没有,只好自己动手了——才能风衣足食. 更改文件:\dvwa\ ...

  6. ASTER:An Attentional Scene Text Recognizer with Flexible Rectification

    代码链接:https://github.com/bgshih/aster 方法概述 本文方法主要解决不规则排列文字的文字识别问题,论文为之前一篇CVPR206的paper(Robust Scene T ...

  7. BUG处理流程说明

    一.        BUG处理流程图: 流程描述: 1.  测试人员发现bug提交给开发. 2.  开发人员判断是否是bug. 3.  如果是bug,进行修改,修改完成后更改bug状态为已解决. 4. ...

  8. SpringBoot actuator 应用监控。

    前言 : 今天在阅读 <SpringCloud微服务实战>一书时看到了SpringBoot actuator相关知识,并且自己也本地调试实践.觉得SpringBoot这一套监控还是挺有意思 ...

  9. Java:多线程,Semaphore同步器

    1. 背景 类java.util.concurrent.Semaphore提供了一个计数信号量.通过Semaphore类,可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如 ...

  10. 开发集成工具MyEclipse中Outline的问题

    序言 不懂的多查,越查就越显得自己的无知,越发现大神的存在,可能相对于我来说是大神,在他那个高度,就觉得自己很菜,这些都正常,最值得敬佩的是,比你厉害的人,还比你更努力,那自己还有什么理由不努力呢,如 ...