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 ...
随机推荐
- JSTL的c:forEach标签(${status.index})
<c:forEach>标签具有以下一些属性: var:迭代参数的名称.在迭代体中可以使用的变量的名称,用来表示每一个迭代变量.类型为String. items:要进行迭代的集合.对于它所支 ...
- 你缺什么(codevs 2928)
2928 你缺什么 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 继“你幸福吗”之后,央视又推出了“ ...
- python如何一行输入多个值
python2的raw_input以及python3的input获取的是整行的字符串.读进来后,字符串有着著名的split可以根据分隔符拆解成子串组成的list. 对于list内的对象,需要的采取转换 ...
- poj1703(各种姿势)
题目链接:http://poj.org/problem?id=1703 题意:有n个人分别属于两个团伙,接下来m组形如 ch, x, y的数据,ch为"D"表示 x, y属于不同的 ...
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined)(set容器里count函数以及加强for循环)
题目链接:http://codeforces.com/contest/722/problem/D 1 #include <bits/stdc++.h> #include <iostr ...
- hadoop2.x NameNode 的共享存储实现
过去几年中 Hadoop 社区涌现过很多的 NameNode 共享存储方案, 比如 shared NAS+NFS.BookKeeper.BackupNode 和 QJM(Quorum Journal ...
- C#的正则表达式
using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys ...
- ***电商数据库设计参考:ecshop数据库+订单表结构等
ecshop订单表结构ecs_order_info说明 -- 表的结构 `ecs_order_info` CREATE TABLE IF NOT EXISTS `ecs_order_info` ...
- .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器
1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.We ...
- 【转载】 python修饰符@
@符号在python语言中具有特殊含义,用来作为修饰符使用, @修饰符有点像函数指针,python解释器发现执行的时候如果碰到@修饰的函数,首先就解析它,找到它对应的函数进行调用,并且会把@修饰下面一 ...