0

0 から 0777 までの 8 進数のみを受け入れるように、dijit.form.NumberSpinner を制限しようとしています。

コンストラクターで制約を設定し、NumberSpinner の調整 (...) 関数をオーバーライドして、これを実行しようとしました。私の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 関数が何度も何度も呼び出されることです。なぜ繰り返し呼び出されるのかわかりませんか?

何か案は?

4

1 に答える 1

1

あなたのadjust関数では、あなたは値を返していませんoctalAdjust-あなたはそれを呼び出しているだけです。adjustオーバーライドを次のように変更します。

adjust: function(val, delta) { return octalAdjust(val, delta, this.constraints); }
于 2013-01-02T22:18:15.290 に答える