Ajax实现点击省份显示相应城市
功能:不用级联效果,自己写ajax,从接口读取省份城市数据,实现点击省份显示相应城市。后端根据省份ID,给前端返回城市。
一、DOM结构(套用blade模板)
<div class="controls bui-form-group-select"> <div class="control-group span10"> <label class="control-label"><s>*</s>省份:</label> <select name="province_id" id="province" data-rules="{required : true}"> <option value="">请选择省份</option> @if(isset($orderInfo['province_id'])) //编辑时 @foreach ($aProvinceList['aList'] as $key => $value) <option value="{{ $value['iAutoID'] }}" @if( $orderInfo['province_id'] ==$value['iAutoID']) selected @endif>{{ $value['sName'] }}</option> @endforeach @else //添加时 @foreach ($aProvinceList['aList'] as $key => $value) <option value="{{ $value['iAutoID'] }}">{{ $value['sName'] }}</option> @endforeach @endif </select> </div> <div class="control-group span10"> <label class="control-label"><s>*</s>城市:</label> <select name="city_id" id="city" style="margin-left:10px;" data-rules="{required : true}"> @if(isset($orderInfo['city_id'])) <option value="{{$orderInfo['city_id']}}" selected>{{$orderInfo['sCity']}}</option> @endif </select> </div> </div>
二、触发事件
1.如果用Kissy写,格式如下:
Event.on('#province','change', function() { var sPro=S.one('#province').val(); if(sPro){ IO({ url: "{{ url('ajax/chinacity/search') }}", type: 'POST', data: { "province_id" : S.one("#province").val() }, success: function(data){ S.one("#city").html('<option value="">请选择城市</option>'); S.each(data.data,function(item,i){ S.one("#city").append("<option value="+item.iAutoID+">"+item.sName+"</option>"); }); } }); } });
如果用JQuery写,格式如下:
$('#province').change(function() { var sPro = $(this).val(); if (sPro) { $.ajax({ type: 'POST', url: "{{ url('ajax/chinacity/search') }}", data: { "province_id": sPro }, success: function(data) { $("#city").html('<option value="">请选择城市</option>'); $.each(data.data, function(item, i) { $("#city").append("<option value=" + item.iAutoID + ">" + item.sName + "</option>"); }); } }); }});
“添加页面”和“编辑页面”往往是同一个页面,区别在于后者有值,在“编辑页面”有之前选好的省份和城市。此时会有一个问题,省份不变,只修改城市,城市下拉列表不出现,必须先选择省份,再重新选择城市。于是添加城市的请求,希望在编辑页可以单独下拉城市列表,然而在控制台会看到请求发送了很多次,需要优化。
Ajax实现点击省份显示相应城市的更多相关文章
- 11月10日下午 ajax做显示信息以后用ajax、Bootstrp做弹窗显示信息详情
1.用ajax做弹窗显示信息详情 nation.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- ajax做显示信息以后用ajax、Bootstrp做弹窗显示信息详情
1.用ajax做弹窗显示信息详情 nation.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- js进阶 12-15 jquery如何实现点击button显示列表,点击其它位置隐藏列表
js进阶 12-15 jquery如何实现点击button显示列表,点击其它位置隐藏列表 一.总结 一句话总结:在button中阻止事件冒泡. 1.如何咋button中阻止事件冒泡(两种方法)? ev ...
- 编写Java程序,现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示
查看本章节 查看作业目录 需求说明: 现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示 实现思路: 创建解析 XML 文档类 ParseXML 和窗体类 ...
- [WPF]ComboBox.Items为空时,点击不显示下拉列表
ComboBox.Items为空时,点击后会显示空下拉列表: ComboBox点击显示下拉列表,大概原理为: ComboBox存在ToggleButton控件,默认ToggleButton.IsChe ...
- React 点击按钮显示div与隐藏div,并给div传children
最近做了一个react的点击按钮显示与隐藏div的一个小组件: [筛选]组件FilterButton import React,{Component} from 'react'; import {re ...
- Android点击View显示PopupWindow,再次重复点击View关闭PopupWindow
Android点击View显示PopupWindow,再次重复点击View关闭PopupWindow 这本身是一个看似很简单的问题,但是如果设置不当,就可能导致莫名其妙失效问题.通常在Andro ...
- JavaScript网站设计实践(五)编写photos.html页面,实现点击缩略图显示大图的效果
一.photos.html页面,点击每一张缩略图,就在占位符的位置那里,显示对应的大图. 看到的页面效果是这样的: 1.实现思路 这个功能在之前的JavaScript美术馆那里已经实现了. 首先在页面 ...
- 一天JavaScript示例-点击图片显示大图片添加鼠标
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- 【linux】gcc命令
来源:http://man.linuxde.net/gcc 语法 gcc(选项)(参数) 选项 -o:指定生成的输出文件: -E:仅执行编译预处理: -S:将C代码转换为汇编代码: -wall:显示警 ...
- Spetember 5th 2016 Week 37th Monday
No matter how far you may fly, never forget where you come from. 无论你能飞多远,都别忘了你来自何方. Stay true to you ...
- Mysql之复制服务
Replication[复制]使得数据可以从一个Master服务器上复制到一个或多个Slave上,默认是异步复制,不需要与Master建立永久连接:基于配置,可以作用于所有库,指定的库或库中的某些表. ...
- Mysql 数据库无法删除 41 错误
今天删除Mysql 数据库时候,没法删除,直接报错 41: 方法,进入 mysql的安装目录 我的是:D:\tools\Mysql\V76384-01\mysql-advanced-5.6.25-wi ...
- self和parent的用法
总结 self , parent 的用法 只能用在类的内部 self 本类 (不要理解成本对象) parent 父类 在引入自身的静态属性/静态方法 以及父类的方法时 ...
- tengine-2.1.0 源码安装
[root@localhost tengine-]# yum update -y [root@localhost tengine-]# yum install gcc gcc-c++ autoconf ...
- 【Javascript】IE8兼容 背景图片与a标签的onclick事件
先说几句牢骚话. 虽然IE8比之IE6.7有很大的进步,但是在执行效率.兼容性上仍然有很多问题.被广大开发者喜爱的平台才是好平台. 可惜多亏当年盗版XP打开中国的计算机市场,IE作为一款捆绑软件仍然在 ...
- Delphi面向对象编程
一.面向对象介绍 OOP是使用独立的对象(包含数据和代码)作为应用程序模块的范例.虽然OOP不能使得代码容易编写,但是它能够使得代码易于维护.将数据和代码结合在一起,能够使定位和修复错误的工作简单化, ...
- HDU2296 Ring(AC自动机 DP)
dp[i][j]表示行走i步到达j的最大值,dps[i][j]表示对应的串 状态转移方程如下: dp[i][chi[j][k]] = min(dp[i - 1][j] + sum[chi[j][k]] ...
- 攻城狮在路上(叁)Linux(二十二)--- linux磁盘挂载与卸载 mount umount
挂载就是将文件系统与目录结合的操作.挂载点就是目录,该目录就是进入分区或文件系统的入口. 一.挂载前的注意事项: 1.单一文件系统不应该被重复挂载在不同的挂载点中. 2.单一目录不应该重复挂载多个文件 ...