百度地图 在用户输入的省市区范围内进行关键字智能提示搜索
来源:互联网 发布:linux工具链 编辑:程序博客网 时间:2024/06/06 01:18
现在进行表单输入地址的时候分为省市区和详细地址,省市区用citypicker插件可以轻松完成,但是输入详细地址的时候要调用百度API进行关键字智能提示,那么问题来了,如何在用户输入的省市区内进行关键字搜索呢?不知道各位有没有这种疑惑?
其实解决方法也很简单,将百度地图给的搜索框隐藏掉,自己添加一个输入框,然后在添加的输入框上添加键盘弹起事件,通过事件给隐藏的搜索框赋值(含有省市区),问题解决。
废话不多说,上代码:
<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <!--引入citypicker相关配置--> <script src="../js/jquery.min.js" type="text/javascript" charset="utf-8"></script> <script src="../js/city/city-picker.data.js" type="text/javascript" charset="utf-8"></script> <script src="../js/city/city-picker.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" type="text/css" href="../js/city/css/city-picker.css" /> <style type="text/css"> body, html { width: 100%; height: 100%; margin: 0; font-family: "微软雅黑"; font-size: 14px; } #r-result { width: 100%; } </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=***您的AK***"></script> <title>关键字输入提示词条</title> </head> <body> <div style="position: relative;"> <input id="pct" readonly type="text" style="width:300px;"> </div> <!--citypicker产生的省市区无法直接获取省、市、区,故编写一个隐藏省、市、区输入框--> <!--隐藏的省市区,方便下面调用--> <div style="position: relative;"> <input id="province" name="province" type="hidden" /> <input id="city" name="city" type="hidden" /> <input id="district" name="district" type="hidden" /> </div> <!--此输入框替代智能搜索输入框,将搜索关键字输入到此输入框中,然后调用此输入框的键盘弹起事件,对默认的关键字搜索框进行赋值,赋的值为输入的省市区+搜索的关键字--> <div id="r-result"> <input type="text" id="suggestId2" value="" style="width:300px;" onfocus="setValue(this)" onkeyup="mysearch(this)"/> </div> <!--智能搜索提示框默认显示在输入搜索关键字的下面--> <!--将关键字搜索输入框隐藏,但是要进行占位。不然智能搜索提示框出现的位置会有异常。进行占位之后搜索提示框就会出现在该输入框的下面。--> <!--visibility:hidden:将输入框隐藏但占位--> <div id="r-result"><input type="text" id="suggestId" value="" style="width:300px;height:0px;visibility:hidden"/></div> <div id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div> </body></html><script type="text/javascript"> /*citypicker*/ $("#pct").citypicker(); /*替代的关键字搜索框的聚焦事件,将citypicker中的省市区信息注入隐藏的省市区输入框中*/ function setValue() { var pct = $("#pct").val(); var pcts = new Array(); pcts = pct.split("/") $("#province").val(pcts[0]); $("#city").val(pcts[1]); $("#district").val(pcts[2]); }; /*替代的关键字搜索框的键盘弹起事件*/ function mysearch(e) { if($('#province').val() == '') { alert('请先选择省市区'); $('#suggestId').val(''); $('#suggestId2').val(''); } /*对默认的关键字搜索框进行赋值*/ $('#suggestId').val($('#province').val() + $('#city').val() + $('#district').val() + $(e).val()); } // 百度地图API功能 function G(id) { return document.getElementById(id); } var ac = new BMap.Autocomplete( //建立一个自动完成的对象 { "input": "suggestId" }); var myValue; ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件 var _value = e.item.value; myValue = _value.province + _value.city + _value.district + _value.street + _value.business; G("searchResultPanel").innerHTML = "onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue; setPlace(); /*替代的关键字搜索框显示的内容不需要省市区信息*/ $('#suggestId2').val(_value.street + _value.business); }); function setPlace() { var local = new BMap.LocalSearch({ //智能搜索 onSearchComplete: function(){ local.getResults().getPoi(0).point; } }); local.search(myValue); }</script>
效果如下:
当然在提交表单的时候要在提交按钮上加点击事件:
function ck(){ /*在提交之前再次对默认搜索框进行赋值*/ /*防止输入时,点击的是浏览器记住的地址,从而没有触发键盘弹起事件,传出的地址值会为空*/ $('#suggestId').val($('#province').val() + $('#city').val() + $('#district').val() + $("#suggestId2").val()); $('#xxForm').submit(); }
阅读全文
0 0
- 百度地图 在用户输入的省市区范围内进行关键字智能提示搜索
- 百度地图web 关键字输入智能提示 省市区限制
- 百度的搜索输入提示
- 百度地图输入框关键字提示被模态框挡住
- 仿google、百度搜索框输入信息智能提示的实现 兼容主流浏览器
- JS实现输入框类似百度搜索的智能提示效果
- 仿google、百度搜索框输入信息智能提示的实现 兼容主流浏览器
- 百度地图在合适视野范围内显示所有的点
- ajax(2)实现智能输入提示(类似百度搜索框智能输入)
- 百度地图——判断用户是否在配送范围内解决方案
- android 百度地图多个点显示在屏幕范围内的地图上
- 百度地图查询视野范围内的建筑物
- 百度地图显示一定范围内的点
- 仿百度输入框智能提示的js代码
- ios调用百度地图智能联想搜索
- 类似百度的搜索提示框,数据库中查询关键字
- 搜索关键字拼音智能提示实现
- 搜索关键字拼音智能提示实现
- stm32_025_stm32RCC时钟系统
- [知了堂学习笔记]_JavaScript
- ckfinder文件管理
- 计算牛的数量-递归
- Linux忘记 root密码的解决办法
- 百度地图 在用户输入的省市区范围内进行关键字智能提示搜索
- leetcode 441. Arranging Coins
- 阶乘求和
- 刷题笔记:PAT真题在线练习A+B和C
- 求圆柱的体积
- http://blog.csdn.net/jim8757/article/details/76961735
- 享元模式浅析
- tomcat启动窗口一闪而过,cmd启动报错
- x86汇编与C相互调用