2013-01-02 41 views
0

我试图限制dijit.form.NumberSpinner,使其只接受0和0777在道场

之间的八进制数创建八进制数字增我试图做到这一点在构造函数中设置约束,然后覆盖NumberSpinner的adjust(...)函数。在我的HTML页面我有:

<input name="umask" id="umask" data-dojo-type="dijit.form.NumberSpinner" 
value="022" data-dojo-props="smallDelta:1, largeDelta:4, 
constraints:{min:0, max:777, places:0}, 
adjust: function(val, delta) { octalAdjust(val, delta, this.constraints); }"/> 

在我包含的JavaScript我有:

function octalAdjust(val, delta, constraints) { 
    ... 
return newval; 
}; 

,我有是,当我点击“向上”或在“向下”按钮的问题数字微调器,我的八进制调整功能一次又一次地被调用。我不知道为什么它被重复调用?

任何想法?

回答

1

在你的adjust函数中,你没有返回值octalAdjust - 你只是在调用它。改变你的adjust覆盖像这样:

adjust: function(val, delta) { return octalAdjust(val, delta, this.constraints); } 
+0

所以我加入了'回报'建议。然而,如果我单击微调器上的向上按钮,并且一次又一次地调用它,我的八进制调整功能仍然被调用,但这次它会导致我的微调器每次增加1。这种情况发生得非常快,而且微调者迅速增加。我试图在这里重现这一点 - [http://jsfiddle.net/mW9Rb/5/](http://jsfiddle.net/mW9Rb/5/),但它似乎在我的主代码库之外工作正常。其他人有任何建议... – adamretter