事件处理类
js 代码
-
- TextSuggestKeyHandler = Class.create();
-
- TextSuggestKeyHandler.prototype = {
-
- initialize: function( textSuggest,delay ) {
-
- this.textSuggest = textSuggest;
-
- this.input = this.textSuggest.textInput;
- this.delay = delay || 0.3;
- this.timer = null;
- this.lastValue = this.input.value;
-
- this.addKeyHandling();
- },
-
- addKeyHandling: function() {
- this.input.onkeyup = this.keyupHandler.bindAsEventListener(this);
- this.input.onkeydown = this.keydownHandler.bindAsEventListener(this);
- this.input.onblur = this.onblurHandler.bindAsEventListener(this);
- if ( this.textSuggest.isOpera )
- this.input.onkeypress = this.keyupHandler.bindAsEventListener(this);
- },
-
- keydownHandler: function(e) {
- var upArrow = 38;
- var downArrow = 40;
-
- if ( e.keyCode == upArrow ) {
- this.textSuggest.moveSelectionUp();
-
-
- }
- else if ( e.keyCode == downArrow ){
- this.textSuggest.moveSelectionDown();
- }
- },
-
- keyupHandler: function(e) {
- if ( this.input.length == 0 && !this.isOpera )
- this.textSuggest.hideSuggestions();
- if ( !this.handledSpecialKeys(e) ){
- if(this.lastValue == this.input.value){
- return;
- }
- if(this.timer){
- clearTimeout(this.timer);
- }
- this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
- this.lastValue = this.input.value;
- }
- },
-
- onTimerEvent: function(){
- this.timer = null;
- this.textSuggest.handleTextInput();
- },
-
-
- handledSpecialKeys: function(e) {
- var iKeyCode = e.keyCode;
- var enterKey = 13;
- var upArrow = 38;
- var downArrow = 40;
- if ( iKeyCode == upArrow ||iKeyCode == downArrow ) {
- return true;
- }else if ( iKeyCode == enterKey ) {
-
- this.textSuggest.setInputFromSelection();
- return true;
- }
- if ((iKeyCode!=8 && iKeyCode < 32) || (iKeyCode >= 33 && iKeyCode <= 46) || (iKeyCode >= 112 && iKeyCode <= 123)){
- return true;
- }
- return false;
- },
-
- selectRange: function() {
- var suggestion = this.suggestions[ this.selectedIndex ].districtName;
- var iStart = this.input.value.length;
- var iEnd = suggestion.length;
-
- if (this.input.createTextRange){
- this.input.value = suggestion;
- var oRange = this.input.createTextRange();
- oRange.moveStart("character", iStart);
- oRange.moveEnd("character", suggestion.length- this.input.value.length);
- oRange.select();
-
-
- } else if (this.input.setSelectionRange) {
- this.input.setSelectionRange(iStart, iEnd);
- }
-
- this.input.focus();
-
- },
-
- onblurHandler: function(e) {
- if ( this.textSuggest.suggestionsDiv.style.display == '' )
-
- this.textSuggest.setInputFromSelection();
- this.textSuggest.hideSuggestions();
- }
-
- };
使用freemarker封装,使其成为组件,在需要的地方能方便的使用。autocomplete.ftl如下:通过dwrmethod参数将要使用的service方法传入前端处理程序。一并传入的还有显示样式
js 代码
- <#include "/${parameters.templateDir}/simple/text.ftl" />
- <script type="text/javascript">
- var suggestOptions = {
-
- suggestDivClassName: ${parameters.suggestDivClassName ? default("'suggestDiv'")},
-
- suggestionClassName: ${parameters.suggestionClassName ? default("'suggestion'")},
-
- matchClassName : ${parameters.matchClassName ? default("'match'")},
-
- matchTextWidth : ${parameters.matchTextWidth ? default('true')},
-
- selectionColor : ${parameters.selectionColor ? default("'#FFB55E'")},
-
- matchAnywhere : ${parameters.matchAnywhere ? default('false')} ,
-
- ignoreCase : ${parameters.ignoreCase ? default('false')},
-
- count : ${parameters.count ? default(10)},
-
- hiddenId : ${parameters.hiddenId ? default('')}
- };
- new TextSuggest('${parameters.id}',${parameters.dwrMethod}, suggestOptions);
- </script>
分享到:
相关推荐
本实例使用DWR框架实现无刷新自动提示功能,通过鼠标选择内容,然后赋值给文本框。
搜索自动提示列表的dwr实现实例,简单易懂。
这是一个用dwr 框架实现类像百度输入关键字后自动填充下拉框,并点击搜索显示数据库中对应的数据的一个项目
使用DWR 反向推进技术,实现从服务器端向客服端发送信息,减轻服务器的压力,不必要再使用定时查询数据库获取信息了,并有类似QQ的消息提示框(右下角的消息框)
使用DWR实现服务器端向客户端精确推送消息
搜索提示框的自动显示dwr实现实例,简单易懂
DWR框架的实现DWR框架的实现DWR框架的实现DWR框架的实现DWR框架的实现
dwr实现ajax功能ajax+dwr.........................
Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子)
ajax框架dwr实现的页面无刷新分页效果,jsp技术
DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,...
pinyin4j + dwr 实现搜索框提示,部署好即可查看效果,傻瓜式测试用例,亲自建立测试用例。
dwr实现无刷新分页dwr实现无刷新分页dwr实现无刷新分页dwr实现无刷新分页dwr实现无刷新分页dwr实现无刷新分页dwr实现无刷新分页dwr实现无刷新分页
使用DWR实现checkbox复选框的修改默认功能
DWR自动补全 1111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
用数据库缓存池和dwr实现的jsp程序数据库缓存池和dwr实现的jsp程序
使用Hibernate+servlet做一个小小自动补全功能 使用dwr框架实现类似百度搜索
使用dwr+spring实现消息推送 。
利用DWR实现文件上传进度条 利用DWR实现文件上传进度条 利用DWR实现文件上传进度条
使用dwr实现数据库分页,增加,删除!!