侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Ajax实现弹出式无刷新城市选择功能代码

技术  /  管理员 发布于 8年前   157

本文实例讲述了Ajax实现弹出式无刷新城市选择功能。分享给大家供大家参考。具体如下:

这是一款很棒的全国城市选择效果,添加城市时先添加组:找到id是"selectSub"中select标签下,添加option标签,value属性递增,找到id是"selectSub",按照原有格式添加div,其id属性递增;然后添加二级副选框选项:复制id是"selectSub"下任意input标签,粘贴在需要添加的位置即可,你想扩展的话,配合动态语言完全可以将城市从数据库中读取出来。

运行效果截图如下:

在线演示地址如下:

http://demo..net.cn/js/2015/js-ajax-dialog-cha-city-codes/

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Ajax弹出式无刷新城市选择特效</title><meta http-equiv="content-type" content="text/html;charset=gb2312"><style type="text/css">BODY { FONT-SIZE: 12px; PADDING-TOP: 50px}H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px}.bton { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BACKGROUND: #ddd; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid}.cont { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px}#main { MARGIN: 0px auto; WIDTH: 400px}#selectItem { BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; MARGIN-TOP: 10px; Z-INDEX: 2; BACKGROUND: #fff; OVERFLOW: hidden; BORDER-LEFT: #000 1px solid; WIDTH: 400px; BORDER-BOTTOM: #000 1px solid; POSITION: absolute; TOP: 0px}#preview { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 1px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid}#result { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: 10px; BORDER-LEFT: #ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid}.tit { PADDING-LEFT: 10px; MARGIN: 1px; LINE-HEIGHT: 20px; HEIGHT: 20px}.bgc_ccc { BACKGROUND: #ccc}.bgc_eee { BACKGROUND: #eee}.c_999 { COLOR: #999}.pointer { CURSOR: pointer}.left { FLOAT: left}.right { FLOAT: right}.cls { CLEAR: both; FONT-SIZE: 0px; OVERFLOW: hidden; HEIGHT: 0px}#bg { DISPLAY: none; Z-INDEX: 1; BACKGROUND: #ccc; FILTER: alpha(opacity=70); LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; opacity: 0.7}.hidden { DISPLAY: none}.move { CURSOR: move}</style></head><body><DIV id="main"> <INPUT class="bton pointer" onclick="openBg(1);openSelect(1)" type="button" value="请选择" name="button"> <DIV id="result"> <DIV class="tit bgc_eee"> <H2>您已选择的城市汇总</H2> </DIV> <DIV class="cont" id="makeSureItem"></DIV> </DIV></DIV><DIV id="bg"></DIV><DIV class="hidden" id="selectItem"> <DIV class="tit bgc_ccc move" onmousedown="drag(event,this)"> <H2 class="left">请选择城市:</H2> <SPAN class="pointer right" onclick="openBg(0);openSelect(0);">[取消]</SPAN> <SPAN class="pointer right" onclick="makeSure();">[确定]</SPAN> </DIV> <DIV class="cls"></DIV> <DIV class="cont"> <DIV id="selectSub"> <SELECT style="MARGIN-BOTTOM: 10px" onchange="showSelect(this.value)" name=""> <OPTION value="0" selected>中国名城</OPTION>  <OPTION value="1">魅力城市</OPTION> <OPTION value="2">东北三省</OPTION> <OPTION value="3">世界城市</OPTION> </SELECT>  <DIV id="c00"> <INPUT onclick="addPreItem()" type="checkbox" value="北京" name="ck00">北京 <INPUT onclick="addPreItem()" type="checkbox" value="福建" name="ck00">福建 <INPUT onclick="addPreItem()" type="checkbox" value="四川" name="ck00">四川 <INPUT onclick="addPreItem()" type="checkbox" value="江苏" name="ck00">江苏 </DIV> <DIV id="c01"> <INPUT onclick="addPreItem()" type="checkbox" value="上海" name="ck01">上海 <INPUT onclick="addPreItem()" type="checkbox" value="云南" name="ck01">云南 <INPUT onclick="addPreItem()" type="checkbox" value="贵州" name="ck01">贵州 </DIV> <DIV id="c02"> <INPUT onclick="addPreItem()" type="checkbox" value="黑龙江" name="ck01">黑龙江 <INPUT onclick="addPreItem()" type="checkbox" value="吉林" name="ck01">吉林 <INPUT onclick="addPreItem()" type="checkbox" value="辽宁" name="ck01">辽宁 </DIV> <DIV id="c03"> <INPUT onclick="addPreItem()" type="checkbox" value="美国" name="ck01">美国 <INPUT onclick="addPreItem()" type="checkbox" value="阿富汗" name="ck01">阿富汗 <INPUT onclick="addPreItem()" type="checkbox" value="日本" name="ck01">日本 </DIV> </DIV> </DIV> <DIV id="preview"> <DIV class="tit bgc_eee c_999"> <H2>您已选择:</H2> </DIV> <DIV class="cont" id="previewItem"></DIV> </DIV></DIV><script type="text/javascript">var grow = $("selectSub").getElementsByTagName("option").length; //组数var showGrow = 0;//已打开组var selectCount = 0; //已选数量 showSelect(showGrow);var items = $("selectSub").getElementsByTagName("input");function $(o){ if(typeof(o) == "string") return document.getElementById(o); return o;}function openBg(state){ if(state == 1) {  $("bg").style.display = "block";  var h = document.body.offsetHeight > document.documentElement.offsetHeight ? document.body.offsetHeight : document.documentElement.offsetHeight;  $("bg").style.height = h + "px"; } else {  $("bg").style.display = "none"; } }function openSelect(state){ if(state == 1)  {  $("selectItem").style.display = "block";  $("selectItem").style.left = ($("bg").offsetWidth - $("selectItem").offsetWidth)/2 + "px";  $("selectItem").style.top = document.body.scrollTop + 100 + "px";   } else {  $("selectItem").style.display = "none"; }}function showSelect(id){ for(var i = 0 ; i < grow ;i++) {  $("c0" + i).style.display = "none"; } $("c0" + id).style.display = "block"; showGrow = id;}function open(id,state){  if(state == 1) $(id).style.display = "block"; $(id).style.diaplay = "none";}function addPreItem(){  $("previewItem").innerHTML = ""; var len = 0 ; for(var i = 0 ; i < items.length ; i++) {  if(items[i].checked == true)  {   var mes = "<input type='checkbox' checked='true' value='"+ items[i].value +"' onclick='copyItem(\"previewItem\",\"previewItem\");same(this);'>" + items[i].value;   $("previewItem").innerHTML += mes;  } }}function makeSure(){ openBg(0); openSelect(0); copyItem("previewItem","makeSureItem") }function copyHTML(id1,id2){ $(id2).innerHTML = $("id1").innerHTML;}function copyItem(id1,id2){  var mes = ""; var items2 = $(id1).getElementsByTagName("input"); for(var i = 0 ; i < items2.length ; i++) {  if(items2[i].checked == true)  {  mes += "<input type='checkbox' checked='true' value='"+ items2[i].value +"' onclick='copyItem(\"" + id2+ "\",\""+ id1 +"\");same(this);'>" + items2[i].value;     } } $(id2).innerHTML = ""; $(id2).innerHTML += mes;}function same(ck){ for(var i = 0 ; i < items.length ; i++) {  if(ck.value == items[i].value)  {   items[i].checked = ck.checked;  } }} var oDrag = "";var ox,oy,nx,ny,dy,dx;function drag(e,o){ var e = e ? e : event; var mouseD = document.all ? 1 : 0; if(e.button == mouseD) {  oDrag = o.parentNode;  ox = e.clientX;  oy = e.clientY;   }}function dragPro(e){ if(oDrag != "") {   var e = e ? e : event;  dx = parseInt($(oDrag).style.left);  dy = parseInt($(oDrag).style.top);  nx = e.clientX;  ny = e.clientY;  $(oDrag).style.left = (dx + ( nx - ox )) + "px";  $(oDrag).style.top = (dy + ( ny - oy )) + "px";  ox = nx;  oy = ny; }}document.onmouseup = function(){oDrag = "";}document.onmousemove = function(event){dragPro(event);}</script></body></html>

希望本文所述对大家的Ajax程序设计有所帮助。


  • 上一条:
    Ajax带提示的验证表单实例
    下一条:
    双层ajax嵌套(可多层)用法实例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(1个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客