3

dijit.form.NumberSpinnerウィジェット内の値がインクリメントまたはデクリメントされた場合にイベントをキャッチする方法はありますか?

私が意図しているのは、値が0を下回るたびに、NumberSpinnerウィジェット内のテキストを「Never」に設定し、ユーザーがそれを「Never」からインクリメントすると、再び0に設定する必要があります。

4

1 に答える 1

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/

于 2012-05-22T15:21:39.033 に答える