📄 combobox.js
字号:
if(!this.disabled&&!this.readOnly&&this.hasDownArrow){dojo.removeClass(this.downArrowNode,"dojoArrowButtonPushed");}},compositionend:function(evt){this._onKeyPress({charCode:-1});},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.hasDownArrow){this.baseClass="dijitTextBox";}if(!this.store){var _32=this.srcNodeRef;this.store=new dijit.form._ComboBoxDataStore(_32);if(!this.value||((typeof _32.selectedIndex=="number")&&_32.selectedIndex.toString()===this.value)){var _33=this.store.fetchSelectedItem();if(_33){this.value=this.store.getValue(_33,this._getValueField());}}}},_postCreate:function(){var _34=dojo.query("label[for=\""+this.id+"\"]");if(_34.length){_34[0].id=(this.id+"_label");var cn=this.comboNode;dijit.setWaiState(cn,"labelledby",_34[0].id);}},uninitialize:function(){if(this._popupWidget){this._hideResultList();this._popupWidget.destroy();}},_getMenuLabelFromItem:function(_36){var _37=this.store.getValue(_36,this.labelAttr||this.searchAttr);var _38=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_37=this.doHighlight(_37,this._escapeHtml(this._lastInput));_38="html";}return {html:_38=="html",label:_37};},doHighlight:function(_39,_3a){var _3b="i"+(this.highlightMatch=="all"?"g":"");var _3c=this._escapeHtml(_39);var ret=_3c.replace(new RegExp("^("+_3a+")",_3b),"<span class=\"dijitComboBoxHighlightMatch\">$1</span>");if(_3c==ret){ret=_3c.replace(new RegExp(" ("+_3a+")",_3b)," <span class=\"dijitComboBoxHighlightMatch\">$1</span>");}return ret;},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""");return str;},open:function(){this._isShowingNow=true;return dijit.popup.open({popup:this._popupWidget,around:this.domNode,parent:this});},reset:function(){this.item=null;this.inherited(arguments);}});dojo.declare("dijit.form._ComboBoxMenu",[dijit._Widget,dijit._Templated],{templateString:"<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' tabIndex='-1' style='overflow: \"auto\"; overflow-x: \"hidden\";'>"+"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton'></li>"+"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton'></li>"+"</ul>",_messages:null,postMixInProperties:function(){this._messages=dojo.i18n.getLocalization("dijit.form","ComboBox",this.lang);this.inherited("postMixInProperties",arguments);},_setValueAttr:function(_3f){this.value=_3f;this.onChange(_3f);},onChange:function(_40){},onPage:function(_41){},postCreate:function(){this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];this.inherited(arguments);},onClose:function(){this._blurOptionNode();},_createOption:function(_42,_43){var _44=_43(_42);var _45=dojo.doc.createElement("li");dijit.setWaiRole(_45,"option");if(_44.html){_45.innerHTML=_44.label;}else{_45.appendChild(dojo.doc.createTextNode(_44.label));}if(_45.innerHTML==""){_45.innerHTML=" ";}_45.item=_42;return _45;},createOptions:function(_46,_47,_48){this.previousButton.style.display=(_47.start==0)?"none":"";dojo.attr(this.previousButton,"id",this.id+"_prev");dojo.forEach(_46,function(_49,i){var _4b=this._createOption(_49,_48);_4b.className="dijitReset dijitMenuItem";dojo.attr(_4b,"id",this.id+i);this.domNode.insertBefore(_4b,this.nextButton);},this);var _4c=false;if(_47._maxOptions&&_47._maxOptions!=-1){if((_47.start+_47.count)<_47._maxOptions){_4c=true;}else{if((_47.start+_47.count)>(_47._maxOptions-1)){if(_47.count==_46.length){_4c=true;}}}}else{if(_47.count==_46.length){_4c=true;}}this.nextButton.style.display=_4c?"":"none";dojo.attr(this.nextButton,"id",this.id+"_next");},clearResultList:function(){while(this.domNode.childNodes.length>2){this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]);}},getItems:function(){return this.domNode.childNodes;},getListLength:function(){return this.domNode.childNodes.length-2;},_onMouseDown:function(evt){dojo.stopEvent(evt);},_onMouseUp:function(evt){if(evt.target===this.domNode){return;}else{if(evt.target==this.previousButton){this.onPage(-1);}else{if(evt.target==this.nextButton){this.onPage(1);}else{var tgt=evt.target;while(!tgt.item){tgt=tgt.parentNode;}this._setValueAttr({target:tgt},true);}}}},_onMouseOver:function(evt){if(evt.target===this.domNode){return;}var tgt=evt.target;if(!(tgt==this.previousButton||tgt==this.nextButton)){while(!tgt.item){tgt=tgt.parentNode;}}this._focusOptionNode(tgt);},_onMouseOut:function(evt){if(evt.target===this.domNode){return;}this._blurOptionNode();},_focusOptionNode:function(_53){if(this._highlighted_option!=_53){this._blurOptionNode();this._highlighted_option=_53;dojo.addClass(this._highlighted_option,"dijitMenuItemHover");}},_blurOptionNode:function(){if(this._highlighted_option){dojo.removeClass(this._highlighted_option,"dijitMenuItemHover");this._highlighted_option=null;}},_highlightNextOption:function(){var fc=this.domNode.firstChild;if(!this.getHighlightedOption()){this._focusOptionNode(fc.style.display=="none"?fc.nextSibling:fc);}else{var ns=this._highlighted_option.nextSibling;if(ns&&ns.style.display!="none"){this._focusOptionNode(ns);}}dijit.scrollIntoView(this._highlighted_option);},highlightFirstOption:function(){this._focusOptionNode(this.domNode.firstChild.nextSibling);dijit.scrollIntoView(this._highlighted_option);},highlightLastOption:function(){this._focusOptionNode(this.domNode.lastChild.previousSibling);dijit.scrollIntoView(this._highlighted_option);},_highlightPrevOption:function(){var lc=this.domNode.lastChild;if(!this.getHighlightedOption()){this._focusOptionNode(lc.style.display=="none"?lc.previousSibling:lc);}else{var ps=this._highlighted_option.previousSibling;if(ps&&ps.style.display!="none"){this._focusOptionNode(ps);}}dijit.scrollIntoView(this._highlighted_option);},_page:function(up){var _59=0;var _5a=this.domNode.scrollTop;var _5b=dojo.style(this.domNode,"height");if(!this.getHighlightedOption()){this._highlightNextOption();}while(_59<_5b){if(up){if(!this.getHighlightedOption().previousSibling||this._highlighted_option.previousSibling.style.display=="none"){break;}this._highlightPrevOption();}else{if(!this.getHighlightedOption().nextSibling||this._highlighted_option.nextSibling.style.display=="none"){break;}this._highlightNextOption();}var _5c=this.domNode.scrollTop;_59+=(_5c-_5a)*(up?-1:1);_5a=_5c;}},pageUp:function(){this._page(true);},pageDown:function(){this._page(false);},getHighlightedOption:function(){var ho=this._highlighted_option;return (ho&&ho.parentNode)?ho:null;},handleKey:function(key){switch(key){case dojo.keys.DOWN_ARROW:this._highlightNextOption();break;case dojo.keys.PAGE_DOWN:this.pageDown();break;case dojo.keys.UP_ARROW:this._highlightPrevOption();break;case dojo.keys.PAGE_UP:this.pageUp();break;}}});dojo.declare("dijit.form.ComboBox",[dijit.form.ValidationTextBox,dijit.form.ComboBoxMixin],{postMixInProperties:function(){dijit.form.ComboBoxMixin.prototype.postMixInProperties.apply(this,arguments);dijit.form.ValidationTextBox.prototype.postMixInProperties.apply(this,arguments);},postCreate:function(){dijit.form.ComboBoxMixin.prototype._postCreate.apply(this,arguments);dijit.form.ValidationTextBox.prototype.postCreate.apply(this,arguments);},_setDisabledAttr:function(_5f){dijit.form.ValidationTextBox.prototype._setDisabledAttr.apply(this,arguments);dijit.form.ComboBoxMixin.prototype._setDisabledAttr.apply(this,arguments);},_setValueAttr:function(_60,_61){if(!_60){_60="";}dijit.form.ValidationTextBox.prototype._setValueAttr.call(this,_60,_61);}});dojo.declare("dijit.form._ComboBoxDataStore",null,{constructor:function(_62){this.root=_62;dojo.query("> option",_62).forEach(function(_63){_63.innerHTML=dojo.trim(_63.innerHTML);});},getValue:function(_64,_65,_66){return (_65=="value")?_64.value:(_64.innerText||_64.textContent||"");},isItemLoaded:function(_67){return true;},getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true};},_fetchItems:function(_68,_69,_6a){if(!_68.query){_68.query={};}if(!_68.query.name){_68.query.name="";}if(!_68.queryOptions){_68.queryOptions={};}var _6b=dojo.data.util.filter.patternToRegExp(_68.query.name,_68.queryOptions.ignoreCase),_6c=dojo.query("> option",this.root).filter(function(_6d){return (_6d.innerText||_6d.textContent||"").match(_6b);});if(_68.sort){_6c.sort(dojo.data.util.sorter.createSortFunction(_68.sort,this));}_69(_6c,_68);},close:function(_6e){return;},getLabel:function(_6f){return _6f.innerHTML;},getIdentity:function(_70){return dojo.attr(_70,"value");},fetchItemByIdentity:function(_71){var _72=dojo.query("option[value='"+_71.identity+"']",this.root)[0];_71.onItem(_72);},fetchSelectedItem:function(){var _73=this.root,si=_73.selectedIndex;return dojo.query("> option:nth-child("+(si!=-1?si+1:1)+")",_73)[0];}});dojo.extend(dijit.form._ComboBoxDataStore,dojo.data.util.simpleFetch);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -