2012-03-26 13 views
0

バリデーションのいくつかが様々なビューで繰り返されます。再利用を容易にするために、それらを外部ファイルに移動したいと思います。代わりに、このようVTypesシングルトンに検証を適用するのでExtJS外部のファイルにカスタムバリデーションを移動する

Ext.apply(Ext.form.field.VTypes, Ext.custom.validations.Oib); 

:例として、私はこのようなものを使用できるようにしたいと思い

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 
}); 

どのようにそれを行うことができますか?

答えて

0

シングルトンExt.form.field.VTypesにバリデーションを追加すると、どこにでもアクセスできます。いいえ?それでは何が問題なの?

+0

私はそれが本当だと思うが、私は別のHTMLページを持っている必要がどこ、私は特定の状況があります。

Ext.Loader.setConfig({ enabled : true, paths : { 'custom' : '/ext4/custom' } }); 

はシングルトンに検証を適用し、ファイル

最後
Ext.require([ 'Ext.*', 'custom.validations.Oib' ]); 

を要求します、各ExtJSスクリプトを呼び出します。だから私は、再利用を容易にするために、バリデーションを別々のファイルに入れたいと思っています。 – ipavlic

+0

すべてのページに含まれる共通の.jsファイルを作成します。どうしたの? – sha

+0

Ext.requireで適切なバリデーションをロードしたいのですが、バリデーションのためにそれを行う方法がわかりません。 – ipavlic

0

私は約これで必要なものを行うことができました:

まず、私の外部ファイルへのパスを定義

/ext4/custom 

で私のファイルを入れてください。

Ext.apply(Ext.form.field.VTypes, Ext.create('custom.validations.Oib')); 
関連する問題