(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. MySQL半同步复制的数据一致性探讨微信后台团队实践【转】

    MySQL是一个RDBMS(关系型数据库管理系统),由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.由于其体积小.速度快.拥有成本低,尤其是开放源码这一特点,广受各大企业欢迎,包括 ...

  2. 倒计时demo

    #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (strong,nonatom ...

  3. CodeForces 719A Vitya in the Countryside 思维题

    题目大意:月亮从0到15,15下面是0.循环往复.给出n个数字,如果下一个数字大于第n个数字输出UP,小于输出DOWN,无法确定输出-1. 题目思路:给出0则一定是UP,给出15一定是DOWN,给出其 ...

  4. ABI & API

    API defines the programning language and function entry point, arguments type, order. ABI defines th ...

  5. openstack镜像如何在vmware 环境中运行

    1.云镜像文件下载地址: http://sahara-files.mirantis.com/sahara-juno-spark-1.0.0-ubuntu-14.04.qcow2(安装有sahara-s ...

  6. 提升html5的性能体验系列之二列表流畅滑动

    App的顶部一般有titlebar,下面是list.常见的一个需求是要在list滚动时,titlebar不动.这个简单的需求,实现起来其实并不简单. 在普通web上的做法是使用div的滚动条,把lis ...

  7. html5中拨打电话代码

    <a href="tel:18600000000">给我打电话</a>   <a href="sms:18600000000"&g ...

  8. svn up 提示:Skipped '.'

    >svn up Skipped '.' >svn cleanup '.' is not a working copy directory >svn co https://192.16 ...

  9. XML 从基础到精通

    1.简介 XML(可扩展标记语言)语言是一种数据交换标准,用于存储数据:关键词是标记: XML具有以下优点: (1) 方便的穿过防火墙,在不同的操作系统之间通信,跨语言,跨平台.数据共享非常方便.(J ...

  10. 关于svn的安装问题

    直接把安装包放在 MyEclipse的安装目录下 如果 报错 那么就重装MyEclipse 半个小时左右就OK了不然调错太浪费时间了