【问题标题】:increment/decrements events for dijit.form.NumberSpinnerdijit.form.NumberSpinner 的递增/递减事件
【发布时间】:2012-05-22 13:15:04
【问题描述】:

如果 dijit.form.NumberSpinner 小部件中的值增加或减少,有什么方法可以捕获事件?

我打算做的是,每当值低于 0 时,将 NumberSpinner 小部件内的文本设置为“从不”,当用户将其从“从不”递增时,它应该再次设置为 0。

【问题讨论】:

  • 使用widget的onChange事件怎么样?

标签: dojo dijit.form


【解决方案1】:
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/

【讨论】:

  • 非常感谢。它工作得很好。 jsfiddle上的demo很有用。
猜你喜欢
  • 2012-08-27
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多