I don't have a direct solution to your issue, since the code looks fine to me (maybe it's just a Dojo bug?). But I do have a solid workaround.
Just create your own widget which extends the NumberTextBox, then overrule the "isValid" method with your own validation logic for arabic digits.
// @formatter:off
define([
"dojo/_base/declare",
"dojo/_base/lang",
"dijit/form/NumberTextBox"
// @formatter:on
], function(declare, lang, NumberTextBox) {
return declare("your.form.NumberTextBox", [NumberTextBox], {
isValid: function(/*Boolean*/ /*===== isFocused =====*/) {
var valid = this.inherited(arguments);
// your custom validation logic here
var value = this.get("value"); // the current value
return valid;
}
});
});