Javascript 在Dojo中创建八进制数字pinner

Javascript 在Dojo中创建八进制数字pinner,javascript,dojo,octal,Javascript,Dojo,Octal,我试图限制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, c

我试图限制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); }"/>
我遇到的问题是,当我单击数字微调器上的“向上”或“向下”按钮时,我的octalAdjust函数会被一次又一次地调用。我不知道为什么它会被反复调用


有什么想法吗?

adjust
函数中,您没有返回
octalAdjust
的值-您只是调用它。更改
调整
覆盖,如下所示:

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

因此,我按照建议添加了“返回”。但是,如果单击微调器上的“向上”按钮,仍然会调用octalAdjust函数,并且会反复调用该函数,但这次它会使微调器每次递增1。这种情况发生得很快,旋转器很快计数。我试图在这里复制它,但在我的主代码库之外,它似乎工作得很好。其他人有什么建议吗。。。
adjust: function(val, delta) { return octalAdjust(val, delta, this.constraints); }