2012-05-22 44 views
3

如果dijit.form.NumberSpinner窗口小部件中的值增加或減少,是否有任何方法可以捕獲該事件?dijit.form.NumberSpinner的增加/減少事件

我打算做的是,每當值低於0組文本數字增小部件內顯示爲「從不」,當來自用戶增量爲「從不」,應該重新設置爲0。

+0

如何使用小部件的onChange事件? –

回答

3
dojo.declare("MySpinner", [Spinner], { 

    zeroValue: 'Never', 

    adjust: function(/*Object*/ val, /*Number*/ delta){ 
     arguments[0] = val && val > 0 ? val : 0; 
     return this.inherited(arguments); 
    }, 

    _getValueAttr: function() { 
     var v = this.inherited(arguments); 
     return (!v || v <= 0) ? 0 : v; 
    }, 

    format: function(/*Number*/ value, /*dojo.number.__FormatOptions*/ constraints){ 
     var v = this.inherited(arguments); 
     if (v <= 0 || !v) 
     return this.zeroValue; 

     return v; 
    }, 

    isValid: function(/*Boolean*/ isFocused){ 
     var v = this.get('value'); 
     if (!v) { 
      return true; 
     }   
     return this.inherited(arguments); 
    } 
}); 

這裏的工作示例

http://jsfiddle.net/cswing/zDVep/

+0

非常感謝。它工作完美。 jsfiddle上的演示非常有用。 – TechnoCrat