js搜索框输入提示(高效-ys8)
<style type="text/css">
.inputbox .seleDiv {
border: 1px solid #CCCCCC;
display: none;
left:;
position: absolute;
top: 30px;
width: 220px;
z-index:;
}
.inputbox {
float: right;
height: 30px;
line-height: 30px;
position: relative;
}
.inputbox .seleDiv ul {
background: none repeat scroll 0 0 #FFF6CB;
}
.inputbox .seleDiv ul li {
border-top: 1px solid #FFFFFF;
color: #000000;
cursor: pointer;
height: 25px;
line-height: 25px;
padding-left: 2px;
text-align: left;
}
</style>
<div class="inputbox">
<input type="text" id="txtKey" style="opacity: 0.5;">
<span style="color: Red">在这里可以快速搜索哦</span>
<div class="seleDiv" style="display: none;"><ul><li point="12571893.06640625,3256542.96875" title="您是不是在长沙高新区附近" style="color: rgb(0, 0, 0);">长沙高新区</li></ul></div>
</div>
$(".seleDiv li").live('mousemove', function () {
$(this).css({ "background": "#F0850F", "color": "#FFF" })
})
$(".seleDiv li").live('mouseout', function () {
$(this).css({ "background": "", "color": "#000" })
})
$(".seleDiv li").live('click', function () {
$("#txtKey").val($(this).text());
$(".seleDiv").slideUp();
var point = $(this).attr("point").split(",");
map.setCenter(new sogou.maps.Point(point[0], point[1]), 16);
//----------------------- 重复代码需要重构 赶项目暂时这样用着
var infowindow = new sogou.maps.InfoWindow();
//获取点击位置的坐标
var conrXY = new sogou.maps.Point(point[0], point[1]);
//500 米内的
// var bounds = convertor.bounds(event.point, 250);
//绘制圆形
//删除之前
if (cityCircle) {
cityCircle.setMap(null);
}
var populationOptions = {
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
map: map,
center: conrXY,
radius: 250
};
cityCircle = new sogou.maps.Circle(populationOptions);
//获取地区
GodsPoint = conrXY.toString();
//老方法
var addsLis = getmapList(conrXY);
//新方饭
/// var addsLis = getmapList(bounds);
if (addsLis == "-1")
return;
infowindow.setPosition(conrXY);
infowindow.setContent(addsLis);
infowindow.setTitle("您是不是在:");
setTimeout(function () { infowindow.open(map) }, 10);
})
$(".boxDiv").blur(function () {
$(".seleDiv").slideUp();
})
$(".boxDiv").toggle(function () {
$(".seleDiv").slideDown()
},
function () {
$(".seleDiv").slideUp()
})
var n = -1;
$("#txtKey").click(function () {
n = -1;
if ($(this).val() == "这里可以模糊搜索,比如:软件园") {
$(this).val("");
}
});
$("#txtKey").keyup(function () {
var theEvent = window.event || arguments.callee.caller.arguments[0]
var liSize = $(".seleDiv li").size();
var Code = theEvent.keyCode;
if (Code == "38" || Code == "40" || Code == "13") {
if (Code == "13") {
//按回车选定,并加载选择项绑定的坐标
$("#txtKey").val($(".seleDiv li").eq(n).text());
var point = $(".seleDiv li").eq(n).attr("point").split(",");
map.setCenter(new sogou.maps.Point(point[0], point[1]), 16);
$(".seleDiv").hide();
}
else {//按键盘上下控制
yongshan = yongshan || new yongshan(jQuery);
n = yongshan.setInputEvent("txtKey", Code, liSize, n);
}
}
else {//输入文字--加载提示
if ($(this).val().length >= 2) {
$(".seleDiv").slideDown();
var keyName = $(this).val();
var parms = "";
parms += "keyName=" + encodeURIComponent(keyName);
var url = "/asp/ShopsMaps/SearchAdds/getListByKey/" + parms + "?";
var result = ajax(url);
result = eval("(" + result + ")");
var Outli = "";
if (result.Rows.length == 0) {
$(".seleDiv").html("<ul><li>没有相关数据</li></ul>");
}
else {
for (var j = 0; j < result.Rows.length; j++) {
Outli += "<li title='您是不是在" + result.Rows[j][0] + "附近' point='" + result.Rows[j][1] + "'>" + result.Rows[j][0] + "</li>";
}
$(".seleDiv").html("");
$(".seleDiv").html("<ul>" + Outli + "</ul>");
}
}
else {//展开提示
$(".seleDiv").slideUp();
}
}
})//keyup end
var yongshan = (function ($) {
setInputEvent = function (inputID, Code, ListSize, n) {
if (Code == 40) {
if (n == ListSize - 1) {
n = -1;
}
n = n + 1;
$(".seleDiv li").css("background", "#FFF6CB").eq(n).css("background", "#F0850F");
}
if (Code == 38) {
if (n == 0) {
n = ListSize;
}
n = n - 1;
$(".seleDiv li").css("background", "#FFF6CB").eq(n).css("background", "#F0850F");
}
return n;
},
getInputVal = function (box) {
//增加,修改的时候遍历参数
//遍历参数
var parList = "";
jQuery("#" + box).find(":input").each(function (i) {
if (jQuery(this).attr("type") != 'checkbox' && jQuery(this).attr("type") != 'radio' && jQuery(this).attr("name")) {
parList = parList + ';' + jQuery(this).attr('name') + '=' + encodeURIComponent(jQuery(this).val());
}
}); //each end encodeURIComponent
jQuery("#" + box).find("input:checked").each(function () {
parList += ";" + jQuery(this).attr('name') + '=' + encodeURIComponent(jQuery(this).val());
})//each end
return parList;
}
ClearInputVal = function (box) {
var parList = "";
jQuery("#" + box).find(":input").each(function (i) {
$(this).val("");
});
}
return {
setInputEvent: setInputEvent,
getInputVal: getInputVal,
ClearInputVal: ClearInputVal
}
} (jQuery));
var pubobj = {};
pubobj.j = 0;
pubobj.Brow = {
ie: /msie/.test(window.navigator.userAgent.toLowerCase()),
moz: /gecko/.test(window.navigator.userAgent.toLowerCase()),
opera: /opera/.test(window.navigator.userAgent.toLowerCase()),
safari: /safari/.test(window.navigator.userAgent.toLowerCase())
};
其它例:http://blog.csdn.net/shiyuezhong/article/details/8060159
js搜索框输入提示(高效-ys8)的更多相关文章
- vuejs自定义过滤器根据搜索框输入的值,筛选复杂的列表数据
如题所示,自定义过滤器根据搜索框输入的值,筛选复杂的列表数据.如图所示: html代码: <input type="text" placeholder="姓名/账号 ...
- chosen.jquery.js 搜索框只能从头匹配的解决思路+方法
chosen.jquery.js 搜索框只能从头匹配的解决思路+方法 心急者请直接看下方 总结 ,由于本问题未能找到直接答案,所以只能通过修改源码解决.故将修改源码思路贴出来供大家参考,在遇到其他改源 ...
- 分享一个仅0.7KB的jQuery文本框输入提示插件
由于项目需要,找过几个jQuery文本框输入提示插件来用,但总是有不满意的地方,要么体积较大,要么使用不便,要么会出现把提示文字作为文本框的值的情况.于是我们自己的开发团队制作了这个最精简易用的输入提 ...
- ASP.NET JQuery 随笔-搜索框默认提示
一.文本框中创建默认文本提示 通常用户在搜索内容时,在文本框输入内容前,文本框都会给出默认提示,提示用户输入正确的内容进行搜索. 当文本框获得焦点,如果文本框内容跟提示内容一样,提示内容会自然消失. ...
- Jquery实现文本框输入提示
一些用户体验好的表单都会在文本框里设置输入提示,文本框获取焦点时,提示内容消息,如果未输入,失去焦点时又会出现提示. 网上找到一个比较好用的控件jquery.inputDefault.js 使用方法: ...
- Ternary Search Tree 应用--搜索框智能提示
前面介绍了Ternary Search Tree和它的实现,那么可以用Ternary Search Tree来实现搜索框的只能提示,因为Ternary Search Tree的前缀匹配效率是非常高的, ...
- 转摘:ashx+jquery-autocomplete文本框输入提示功能Asp.net
引入所需文件 <script type="text/javascript" src="JS/jquery-1.8.2.min.js"></sc ...
- Servlet+Ajax实现搜索框智能提示
简介:搜索框相信大家都不陌生,几乎每天都会在各类网站进行着搜索.有没有注意到,很多的搜索功能,当输入内容时,下面会出现提示.这类提示就叫做搜索框的智能提示,本门课程就为大家介绍如何使用Servlet和 ...
- bootstrap-select搜索框输入中文
bootstrap-select 的搜索框无法输入中文,解决办法: 删除源码中这两行代码 that.$lis.not('.hidden, .divider, .dropdown-header').eq ...
随机推荐
- HD1160FatMouse's Speed(最长单调递增子序列)
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Blast本地化
转载]Blast本地化:使用Blastall进行数据库比对 (2012-02-13 21:25:31) 用blastall进行序列比对 blastall是最常用的blast程序之一,其功能非常强大 ...
- MVC页面重定向'页面跳转
MVC页面重定向,主要有以下几种形式: 1.Response.Redirect();方法 using System; using System.Collections.Generic; using S ...
- UI学习之常用方法(续)
UIView 1. UIView *vv = [[UIView alloc]initWithFrame:CGRectMake(100,100, 100, 30)]; [vv.layer setB ...
- (总结)Nginx配置文件nginx.conf中文详解
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...
- Visual Studio的调试技巧
Visual Studio的调试技巧 [原文地址] Debugging Tips with Visual Studio 2010 [原文发表日期] 2010/8/19 10:48 AM 这是我写的关于 ...
- JavaBean简单示例
本示例说明: 从Login.jsp中输入用户名和密码,提交,在NewFile.jsp中显示信息. ----- 类要放在一个包中!!! UserB 类文件 package model; public c ...
- UVa 11988 Broken Keyboard(链表->数组实现)
/*数组形式描述链表:链表不一定要用指针. 题目链接:UVa 11988 Broken Keyboard 题目大意: 小明没有开屏幕输入一个字符串,电脑键盘出现了问题会不定时的录入 home end ...
- iOS-马上着手开发iOS应用应用程序-第二部分构建应用程序
第二部分构建应用程序 1,应用程序开发过程 2,设计用户界面 3,定义交互 4,教程:串联图 1,应用程序开发过程 定义概念 设计用户界面 定义交互 实现行为整合数据 对象是应用程序的基石 类是对象的 ...
- string.replace正则表达式说明
str.replace(reg,function($0,$1,$2...,index,str){ }); $0: 匹配模式的字符串$1...: 匹配模式子表达式的字符串,0个或多个,个数取决于子表达式 ...