(function ($)
{
$.fn.cityselect = function (options)
{
var settings = $.extend ({}, options); this.empty (); var provinceId, provinceName, cityId, cityName; if (settings.loadDefault)
{
var defaultData = settings.loadDefault (); provinceId = defaultData.provinceId;
provinceName = defaultData.provinceName;
cityId = defaultData.cityId;
cityName = defaultData.cityName;
} var provinceInput = $ ('<select class="form-control" style="width:150px"></select>');
var cityInput = $ ('<select class="citySel form-control" style="width: 150px;margin-left: 10px"></select>'); this.addClass ("input-append");
this.append (provinceInput);
this.append (cityInput); if (settings.loadProvince)
{ var provinceList = settings.loadProvince ();
$.each (provinceList, function (i, p)
{
if (i == 0)
{
if (settings.areaInput)
{
settings.areaInput.val (p.id);
}
if (settings.onAreaIdChanged)
{
settings.onAreaIdChanged (p.id);
}
if (settings.onProvinceChanged)
{
settings.onProvinceChanged (p.id, p.name);
}
}
var node = $ ('<option value="{0}">{1}</option>'.format (p.id, p.name));
if (provinceId && p.id == provinceId)
{
node.attr ("selected", "selected");
setProvinceInput (p.id);
}
provinceInput.append (node);
});
}
else
{
throw "必须设置 loadProvince 回调函数";
} provinceInput.on ("change", function (e, d)
{
var selected = $ (this).find ("option:selected"); if (settings.areaInput)
{
settings.areaInput.val (selected.val ());
}
if (settings.onAreaIdChanged)
{
settings.onAreaIdChanged (selected.val ());
}
if (settings.onProvinceChanged)
{
settings.onProvinceChanged (selected.val (), selected.text ());
} setProvinceInput (selected.val ());
}); function setProvinceInput (provinceId)
{
if (settings.loadCity)
{ var cityList = settings.loadCity (provinceId); cityInput.empty ();
$.each (cityList, function (i, p)
{
if (i == 0)
{
if (settings.areaInput)
{
settings.areaInput.val (p.id);
}
if (settings.onAreaIdChanged)
{
settings.onAreaIdChanged (p.id);
}
if (settings.onCityChanged)
{
settings.onCityChanged (p.id, p.name);
}
}
var node = $ ('<option value="{0}">{1}</option>'.format (p.id, p.name));
if (cityId && p.id == cityId)
{
node.attr ("selected", "selected");
}
cityInput.append (node); }); }
else
{
throw "必须设置 loadCity 回调函数";
} } cityInput.on ("change", function (e, d)
{
var selected = $ (this).find ("option:selected"); if (settings.areaInput)
{
settings.areaInput.val (selected.val ());
}
if (settings.onAreaIdChanged)
{
settings.onAreaIdChanged (selected.val ());
}
if (settings.onCityChanged)
{
settings.onCityChanged (selected.val (), selected.text ());
}
}); return this; }; }) (jQuery);

省市区三级联动插件:app-jquery-cityselect.js的更多相关文章

  1. jQuery省市区三级联动插件

    体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...

  2. 项目一:第九天 1、前台客户登录 2、Jquery citypicker省市区三级联动插件 4、业务受理(在线下单)

    1. 前台客户登录 2. Jquery citypicker省市区三级联动插件 3. 百度地图介绍 4. 业务受理(在线下单) 1 实现前台系统登录功能 1.1 Md5加密 admin(明文)---- ...

  3. jquery全国省市区三级联动插件distpicker

    使用步骤: 1.引入js <script src="distpicker/jquery.min.js" type="text/javascript" ch ...

  4. 基于Vue的省市区三级联动插件

    官网地址:https://distpicker.uine.org/ 安装: npm install v-distpicker --save 局部注册: import VDistpicker from ...

  5. 插件 原生js 省市区 三级联动 源码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. JS实现年月日三级联动+省市区三级联动+国家省市三级联动

    开篇随笔:最近项目需要用到关于年月日三级联动以及省市区三级联动下拉选择的功能,于是乎网上搜了一些做法,觉得有一些只是给出了小的案例或者只有单纯的js还不完整,却很难找到详细的具体数据(baidu搜索都 ...

  7. jquery.cityselect.js基于jQuery+JSON的省市或自定义联动效果

    一.插件介绍 最早做省市联动的时候都特别麻烦,后来在helloweba的一篇文章中看到这个插件,很不错的,后来就一直用了. 省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系统.电商网站最 ...

  8. jquery省市区三级联动

    jquery省市区三级联动(数据来源国家统计局官网)内附源码下载 很久很久没有写博了. 今天更新了项目的省市区三级联动数据,更新后最新的海南三沙都有,分享给所有需要的小伙伴们... JQUERY + ...

  9. 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能

    使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下 ...

随机推荐

  1. 使用express创建web服务器

    使用express创建web服务器 laiqun@msn.cn Contents 1. 简单的express服务器 2. 静态文件服务 3. 路由 4. 中间件 1. 简单的express服务器 安装 ...

  2. C/C++时间函数的使用

    来源:http://blog.csdn.net/apull/article/details/5379819 一.获取日历时间time_t是定义在time.h中的一个类型,表示一个日历时间,也就是从19 ...

  3. sql server获取当前年月日 时分秒

    获取当前年月日(字符串): ),) 获取当前时间的时分秒(':'隔开): ),) 将年月日时分秒拼接成一条字符串: ),)),),':','')

  4. remote staspack

    输入文件:$HOME/utility/statspack11g/statspack.env, $HOME/utility/statspack11g/dblist,$HOME/utility/stats ...

  5. 关于tab选项卡,选项的css问题。

    刚开始的思路是:让上面的选中的选项背景变成白色,让下面的层position:absolute;z-index:-1;top:1px,就能盖得上上面的横线.实践证明,这样是能盖得上,但是单选按钮不能点了 ...

  6. Tree Restoring

    Tree Restoring Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement Aoki lo ...

  7. [转]startActivityForResult的用法和demo

    有时候我们需要把A activity提交数据给B  activity处理,然后把结果返回给A 这种方式在很多种情况需要用到,比如我应用的程序需要有拍照上传的功能. 一种解决方案是  我的应用程序 〉调 ...

  8. sql 指定范围 获取随机数

    DECLARE @nMinimumCount INT= 1DECLARE @nMaximumCount INT= 100SELECT abs(CHECKSUM(NEWID()))%(@nMaximum ...

  9. 使用Qt报错error while building deploying project

    方法一:点击左侧的“项目”栏,看“构建目录”栏的路径,一定要注意,在路径中一定不要出现汉字,否则一定会报“error while building deploying project”的错误. 方法二 ...

  10. Git学习 -- 冲突解决

    当连个分支对统一文件提交了不同修改时,可能会出现冲突,例如: $ git merge feature1 Auto-merging readme.txt CONFLICT (content): Merg ...