输入自动提示搜索提示功能的使用说明:sugggestion.txt


Posted in Javascript onSeptember 02, 2013

readme:
本文件记录了suggestion.js文件的功能使用说明:

/* 
* 功能:该js文件中的代码实现了[输入自动搜索提示]功能,如百度、google搜索框中输入一些字符会以下拉列表形式给出一些提示,提高了用户体验; 
* 使用技术:JQuery+Ajax 
* 
* 一、如何使用该功能? 
* 1.使用该功能是需引入以下文件: 
* 1)<link type="text/css" rel="stylesheet" href="<%=baseURL %>/appName/css/common/suggestion.css"/> 
* 2)<script type="text/javascript" src="<%=baseURL %>/appName/js/common/jquery-1.9.1.js"></script> 
* 3)<script type="text/javascript" src="<%=baseURL %>/appName/js/common/suggestion.js"></script> 
* 2.需要在文件中添加标签如下所示: 
* <input type="text" id="keywords_input" autocomplete="off" searchURL="<%=baseURL%>/appName/sug/getSug.spring"> 
* <div id="sug_layer_div"></div> 
* 说明: 
* 1).在使用该功能的页面引入该文件,同时该功能使用了jQuery技术,依赖于jQuery文件,要在引入suggestion.js之前引入jQuery文件; 
* 2).这里假定你需要使用该功能的文本输入框为:<input type="text">; 
* 3).为该input标签指定id为'keywords_input',如<input type="text" id="keywords_input">; 
* 4).为该input标签指定autocomplete为'off',如<input type="text" autocomplete="off">; 
* 5).为该input标签添加自定义属性searchURL,该属性的值为需要调用控制器方法的URL,如需要调用sugController控制器的getSug方法来返回搜索提示数据,则 
* <input type="text" searchURL="<%=baseURL%>/appName/sug/getSug.spring"> 
* (这里使用Spring MVC框架); 
* 6).在input标签下面加一个id为'sug_layer_div'的DIV标签,如<div id="sug_layer_div"></div> 
* 
* 3.请求-响应数据格式说明:(json数据格式) 
* 1)前端示例: 
$.ajax({ 
type:"GET", //AJAX提交方式为GET提交 
dataType:"json", 
url:$("#keywords_input").attr("searchURL"),//处理页面的URL地址 
data:{ //要传递的参数 
"keywords_input":escape($("#keywords_input").val()) 
}, 
success:function(data) { 
var result = data.sugList;;//前端需要的数据 
...... 
} 
}); 
* 2)后台示例: 
@Controller 
@RequestMapping("/el/sug") 
@SuppressWarnings({"rawtypes","unchecked"}) 
public class SugController extends ElBaseController{ 
@RequestMapping("getSug") 
public void getSuggestion (HttpServletRequest request ,HttpServletResponse response)throws JSONException { 
log.info("<------获取搜索提示数据---SugController.getSuggestion--------->"); 
JSONObject json = new JSONObject(); 
String errMsg = ""; 
List sugList = new LinkedList<String>(); 
try { 
String keyword = request.getParameter("keywords_input");//前端传来的数据(输入框中的数据) 
List sugList = SugService.getSuggestionList(keywords_input); }catch (Exception e) { 
errMsg = "获取数据时出现异常,"+e.getMessage(); 
json.put("codeid","FAILURE"); 
} 
json.put("sugList",sugList);//要响应前端的数据 
ajaxResultText(response,json.toString()); 
} 
* 
* 二、如何了解该功能的实现? 
* 阅读本文件的代码,你应了解以下一些基础知识: 
* 1.keyUp,keyDown等事件中一些键码对: 
* 按键 键码 | 按键 键码| 按键键码 
* 0 48 9 57 0(数字键盘)96 
* A 65 Z 90 9(数字键盘)105 
* BackSpace 8 Up-Arrow 38 Dw-Arrow40 
* 
* 2.JavaScript escape()函数 
* escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串 
* 该方法不会对 ASCII字母和数字进行编码,也不会对下面这些 ASCII标点符号进行编码: * @ - _ + . / 。 
* 其他所有的字符都会被转义序列替换。如:escape("?!=()#%&") --> %3F%21%3D%28%29%23%25%26 
* 
* 3.autocomplete属性规定输入字段是否应该启用自动完成功能。 自动完成允许浏览器预测对字段的输入。 
* 当用户在字段开始键入时,浏览器基于之前键入过的值,应该显示出在字段中填写的选项。把该autocomplete属性值设为'off', 
* 就是要关闭浏览器自带的输入提示功能 
* 注释:autocomplete属性适用于<form>,以及下面的 
* <input>类型:text,search,url,telephone,email,password,datepickers,range以及 color。 
* 
* Author:sunfei(孙飞) Date:2013.08.21 
* 
*/
Javascript 相关文章推荐
解决FireFox下[使用event很麻烦]的问题
Nov 26 Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
Mar 10 Javascript
JS Timing
Apr 21 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
Nov 29 Javascript
JavaScript数组去重的6个方法
Jan 21 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
详解基于vue的服务端渲染框架NUXT
Jun 20 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
Vue双向数据绑定(MVVM)的原理
Oct 03 Javascript
如何在CocosCreator里画个炫酷的雷达图
Apr 16 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 #Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
Sep 02 #Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 #Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 #Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 #Javascript
js的alert弹出框出现乱码解决方案
Sep 02 #Javascript
javascript中的window.location.search方法简介
Sep 02 #Javascript
You might like
php下载远程文件类(支持断点续传)
2008/11/14 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
一段实时更新的时间代码
2006/07/07 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
python动态性强类型用法实例
2015/05/09 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
解决yum对python依赖版本问题
2019/07/05 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
keras的三种模型实现与区别说明
2020/07/03 Python
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
生产文员岗位职责
2014/04/05 职场文书
2014年会策划方案
2014/05/11 职场文书
1000字打架检讨书
2014/11/03 职场文书
2014小学年度工作总结
2014/12/20 职场文书
任命书格式范文
2015/09/22 职场文书
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL