⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 combobox.js

📁 用最近的dojo1.2.1制作前端的ajax购书网站
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.	Available via Academic Free License >= 2.1 OR the modified BSD license.	see: http://dojotoolkit.org/license for details*/if(!dojo._hasResource["dijit.form.ComboBox"]){dojo._hasResource["dijit.form.ComboBox"]=true;dojo.provide("dijit.form.ComboBox");dojo.require("dijit.form.ValidationTextBox");dojo.require("dojo.data.util.simpleFetch");dojo.require("dojo.data.util.filter");dojo.requireLocalization("dijit.form","ComboBox",null,"zh,ca,ROOT,pt,da,tr,ru,de,sv,ja,he,fi,nb,el,ar,pt-pt,cs,fr,es,ko,nl,zh-tw,pl,th,it,hu,sk,sl");dojo.declare("dijit.form.ComboBoxMixin",null,{item:null,pageSize:Infinity,store:null,fetchProperties:{},query:{},autoComplete:true,highlightMatch:"first",searchDelay:100,searchAttr:"name",labelAttr:"",labelType:"text",queryExpr:"${0}*",ignoreCase:true,hasDownArrow:true,templateString:"<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\" dojoAttachPoint=\"comboNode\" waiRole=\"combobox\" tabIndex=\"-1\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton'\n\t\t\tdojoAttachPoint=\"downArrowNode\" waiRole=\"presentation\"\n\t\t\tdojoAttachEvent=\"onmousedown:_onArrowMouseDown,onmouseup:_onMouse,onmouseenter:_onMouse,onmouseleave:_onMouse\"\n\t\t\t><div class=\"dijitArrowButtonInner\">&thinsp;</div\n\t\t\t><div class=\"dijitArrowButtonChar\">&#9660;</div\n\t\t></div\n\t\t><div class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div class=\"dijitReset dijitValidationIconText\">&Chi;</div\n\t\t><div class=\"dijitReset dijitInputField\"\n\t\t\t><input type=\"text\" autocomplete=\"off\" name=\"${name}\" class='dijitReset'\n\t\t\tdojoAttachEvent=\"onkeypress:_onKeyPress, onfocus:_update, compositionend\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" waiRole=\"textbox\" waiState=\"haspopup-true,autocomplete-list\"\n\t\t/></div\n\t></div\n></div>\n",baseClass:"dijitComboBox",_getCaretPos:function(_1){var _2=0;if(typeof (_1.selectionStart)=="number"){_2=_1.selectionStart;}else{if(dojo.isIE){var tr=dojo.doc.selection.createRange().duplicate();var _4=_1.createTextRange();tr.move("character",0);_4.move("character",0);try{_4.setEndPoint("EndToEnd",tr);_2=String(_4.text).replace(/\r/g,"").length;}catch(e){}}}return _2;},_setCaretPos:function(_5,_6){_6=parseInt(_6);dijit.selectInputText(_5,_6,_6);},_setDisabledAttr:function(_7){dijit.setWaiState(this.comboNode,"disabled",_7);},_onKeyPress:function(_8){var _9=_8.charOrCode;if(_8.altKey||(_8.ctrlKey&&(_9!="x"&&_9!="v"))||_8.key==dojo.keys.SHIFT){return;}var _a=false;var pw=this._popupWidget;var dk=dojo.keys;if(this._isShowingNow){pw.handleKey(_9);}switch(_9){case dk.PAGE_DOWN:case dk.DOWN_ARROW:if(!this._isShowingNow||this._prev_key_esc){this._arrowPressed();_a=true;}else{this._announceOption(pw.getHighlightedOption());}dojo.stopEvent(_8);this._prev_key_backspace=false;this._prev_key_esc=false;break;case dk.PAGE_UP:case dk.UP_ARROW:if(this._isShowingNow){this._announceOption(pw.getHighlightedOption());}dojo.stopEvent(_8);this._prev_key_backspace=false;this._prev_key_esc=false;break;case dk.ENTER:var _d;if(this._isShowingNow&&(_d=pw.getHighlightedOption())){if(_d==pw.nextButton){this._nextSearch(1);dojo.stopEvent(_8);break;}else{if(_d==pw.previousButton){this._nextSearch(-1);dojo.stopEvent(_8);break;}}}else{this._setDisplayedValueAttr(this.attr("displayedValue"),true);}_8.preventDefault();case dk.TAB:var _e=this.attr("displayedValue");if(pw&&(_e==pw._messages["previousMessage"]||_e==pw._messages["nextMessage"])){break;}if(this._isShowingNow){this._prev_key_backspace=false;this._prev_key_esc=false;if(pw.getHighlightedOption()){pw.attr("value",{target:pw.getHighlightedOption()});}this._lastQuery=null;this._hideResultList();}break;case " ":this._prev_key_backspace=false;this._prev_key_esc=false;if(this._isShowingNow&&pw.getHighlightedOption()){dojo.stopEvent(_8);this._selectOption();this._hideResultList();}else{_a=true;}break;case dk.ESCAPE:this._prev_key_backspace=false;this._prev_key_esc=true;if(this._isShowingNow){dojo.stopEvent(_8);this._hideResultList();}else{this.inherited(arguments);}break;case dk.DELETE:case dk.BACKSPACE:this._prev_key_esc=false;this._prev_key_backspace=true;_a=true;break;case dk.RIGHT_ARROW:case dk.LEFT_ARROW:this._prev_key_backspace=false;this._prev_key_esc=false;break;default:this._prev_key_backspace=false;this._prev_key_esc=false;_a=typeof _9=="string";}if(this.searchTimer){clearTimeout(this.searchTimer);}if(_a){setTimeout(dojo.hitch(this,"_startSearchFromInput"),1);}},_autoCompleteText:function(_f){var fn=this.focusNode;dijit.selectInputText(fn,fn.value.length);var _11=this.ignoreCase?"toLowerCase":"substr";if(_f[_11](0).indexOf(this.focusNode.value[_11](0))==0){var _12=this._getCaretPos(fn);if((_12+1)>fn.value.length){fn.value=_f;dijit.selectInputText(fn,_12);}}else{fn.value=_f;dijit.selectInputText(fn);}},_openResultList:function(_13,_14){if(this.disabled||this.readOnly||(_14.query[this.searchAttr]!=this._lastQuery)){return;}this._popupWidget.clearResultList();if(!_13.length){this._hideResultList();return;}var _15=new String(this.store.getValue(_13[0],this.searchAttr));if(_15&&this.autoComplete&&!this._prev_key_backspace&&(_14.query[this.searchAttr]!="*")){this._autoCompleteText(_15);}_14._maxOptions=this._maxOptions;this._popupWidget.createOptions(_13,_14,dojo.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if(_14.direction){if(1==_14.direction){this._popupWidget.highlightFirstOption();}else{if(-1==_14.direction){this._popupWidget.highlightLastOption();}}this._announceOption(this._popupWidget.getHighlightedOption());}},_showResultList:function(){this._hideResultList();var _16=this._popupWidget.getItems(),_17=Math.min(_16.length,this.maxListLength);this._arrowPressed();this.displayMessage("");dojo.style(this._popupWidget.domNode,{width:"",height:""});var _18=this.open();var _19=dojo.marginBox(this._popupWidget.domNode);this._popupWidget.domNode.style.overflow=((_18.h==_19.h)&&(_18.w==_19.w))?"hidden":"auto";var _1a=_18.w;if(_18.h<this._popupWidget.domNode.scrollHeight){_1a+=16;}dojo.marginBox(this._popupWidget.domNode,{h:_18.h,w:Math.max(_1a,this.domNode.offsetWidth)});dijit.setWaiState(this.comboNode,"expanded","true");},_hideResultList:function(){if(this._isShowingNow){dijit.popup.close(this._popupWidget);this._arrowIdle();this._isShowingNow=false;dijit.setWaiState(this.comboNode,"expanded","false");dijit.removeWaiState(this.focusNode,"activedescendant");}},_setBlurValue:function(){var _1b=this.attr("displayedValue");var pw=this._popupWidget;if(pw&&(_1b==pw._messages["previousMessage"]||_1b==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{this.attr("displayedValue",_1b);}},_onBlur:function(){this._hideResultList();this._arrowIdle();this.inherited(arguments);},_announceOption:function(_1d){if(_1d==null){return;}var _1e;if(_1d==this._popupWidget.nextButton||_1d==this._popupWidget.previousButton){_1e=_1d.innerHTML;}else{_1e=this.store.getValue(_1d.item,this.searchAttr);}this.focusNode.value=this.focusNode.value.substring(0,this._getCaretPos(this.focusNode));dijit.setWaiState(this.focusNode,"activedescendant",dojo.attr(_1d,"id"));this._autoCompleteText(_1e);},_selectOption:function(evt){var tgt=null;if(!evt){evt={target:this._popupWidget.getHighlightedOption()};}if(!evt.target){this.attr("displayedValue",this.attr("displayedValue"));return;}else{tgt=evt.target;}if(!evt.noHide){this._hideResultList();this._setCaretPos(this.focusNode,this.store.getValue(tgt.item,this.searchAttr).length);}this._doSelect(tgt);},_doSelect:function(tgt){this.item=tgt.item;this.attr("value",this.store.getValue(tgt.item,this.searchAttr));},_onArrowMouseDown:function(evt){if(this.disabled||this.readOnly){return;}dojo.stopEvent(evt);this.focus();if(this._isShowingNow){this._hideResultList();}else{this._startSearch("");}},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_getQueryString:function(_23){return dojo.string.substitute(this.queryExpr,[_23]);},_startSearch:function(key){if(!this._popupWidget){var _25=this.id+"_popup";this._popupWidget=new dijit.form._ComboBoxMenu({onChange:dojo.hitch(this,this._selectOption),id:_25});dijit.removeWaiState(this.focusNode,"activedescendant");dijit.setWaiState(this.textbox,"owns",_25);}this.item=null;var _26=dojo.clone(this.query);this._lastInput=key;this._lastQuery=_26[this.searchAttr]=this._getQueryString(key);this.searchTimer=setTimeout(dojo.hitch(this,function(_27,_28){var _29={queryOptions:{ignoreCase:this.ignoreCase,deep:true},query:_27,onBegin:dojo.hitch(this,"_setMaxOptions"),onComplete:dojo.hitch(this,"_openResultList"),onError:function(_2a){console.error("dijit.form.ComboBox: "+_2a);dojo.hitch(_28,"_hideResultList")();},start:0,count:this.pageSize};dojo.mixin(_29,_28.fetchProperties);var _2b=_28.store.fetch(_29);var _2c=function(_2d,_2e){_2d.start+=_2d.count*_2e;_2d.direction=_2e;this.store.fetch(_2d);};this._nextSearch=this._popupWidget.onPage=dojo.hitch(this,_2c,_2b);},_26,this),this.searchDelay);},_setMaxOptions:function(_2f,_30){this._maxOptions=_2f;},_getValueField:function(){return this.searchAttr;},_arrowPressed:function(){if(!this.disabled&&!this.readOnly&&this.hasDownArrow){dojo.addClass(this.downArrowNode,"dijitArrowButtonActive");}},_arrowIdle:function(){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -