Некоторые из моих проверок повторяются в различных представлениях. Я хотел бы переместить их во внешние файлы для облегчения повторного использования. Например, я хотел бы иметь возможность использовать что-то вроде этого:
Ext.apply(Ext.form.field.VTypes, Ext.custom.validations.Oib);
вместо применения проверок к синглтону VTypes следующим образом:
Ext.apply(Ext.form.field.VTypes, {
oib: function(val, field) {
oib = val.toString();
if (oib.length != 11) return false;
var b = parseInt(oib, 10);
if (isNaN(b)) return false;
var a = 10;
for (var i = 0; i < 10; i++) {
a = a + parseInt(oib.substr(i, 1), 10);
a = a % 10;
if (a == 0) a = 10;
a *= 2;
a = a % 11;
}
var control = 11 - a;
if (control == 10) control = 0;
return control == parseInt(oib.substr(10, 1));
},
oibText: 'Wrong oib.',
oibMask: /[\d]/i
});
Как это можно сделать?