在Dojo中创建八进制NumberSpinner

时间:2013-01-02 21:21:57

标签: javascript dojo octal

我正在尝试限制dijit.form.NumberSpinner,以便它只接受0到0777之间的八进制数。

我尝试通过在构造函数中设置Constraints然后覆盖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;
};

我遇到的问题是当我单击数字微调器上的“向上”或“向下”按钮时,我的octalAdjust函数会一遍又一遍地被调用。我不知道为什么它会被重复调用?

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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