2015-12-08 2 views
0

Я попытался создать TextBoxEx, который расширяет dijit/form/TextBox. TextBoxEx переопределяет _onFocus (см. Код ниже), но TextBox не меняет цвет фона. Это всегда будет непросто. В чем моя вина?Как изменить TextBox (dijit/form/TextBox) Фокусный цвет

define([ 
    "dojo/_base/declare", // declare 
    "dijit/form/TextBox", 
    "dojo/on", 
    "dojo/_base/event", 
    "dojo/dom-style" 
], function(declare, TextBox, on, event, domStyle) { 

    var widget = declare("common.TextBoxEx", [TextBox], { 

     inputLanguage : '', 
     focusColor : '#F5EC9B', 
     selectOnClick : true, 
     _onFocus: function(e){ 
      try{ 
       if(this.disabled || this.readOnly){ return; } 
       this.inherited(arguments); 
       this._updatePlaceHolder(); 
       var evt = document.createEvent("Events"); 
       if(this.inputLanguage == 'en'){ 
        evt.initEvent ('switchToEng', true, false); 
        window.dispatchEvent(evt); 
       } 
       else if(this.inputLanguage == 'th'){ 
        evt.initEvent('switchToThai', true, false); 
        window.dispatchEvent(evt); 
       } 

       var dom = this.focusNode; 
       var focusColor = this.focusColor; 

       setTimeout(function() { 
        dom.select(); 
        domStyle.set(dom, 'background-color', focusColor); 

       }, 200); 
      } 
      catch(e){ 
       console.log(e) 
      } 
     }, 

    }); 

    return widget; 
}); 

ответ

0

На самом деле вам не нужно устанавливать цвет фона следующим образом. Просто используйте CSS, чтобы сделать это:

.myTextBoxClass.dijitTextBox.dijitFocused .dijitInputInner { 
    background-color: gray; 
} 

Просто измените .myTextBoxClass на любой класс вы даете текстовое поле.

0

переопределить тему по умолчанию CSS с вашим собственным стилем, используя! Important. Такая работа может быть выполнена только с использованием CSS.