あなたがフォームで、モデルを関連付けるていますか?そうであれば、検証ロジックをモデルに入れることができます。たとえば :
Ext.define('MyModel', {
extend: 'Ext.data.Model',
fields: ['field1', 'field2'],
validations: [
{ type: 'presence', field: 'field1' }
]
});
検証の設定に関するいくつかの詳細情報: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.validations
しかし、彼らは、フォームで動作するようにするために、あなたは少しの魔法が必要になります。これは、(MVCを使用して)コントローラからのコードである。この内部
onFormSave(): function() {
var form = this.form.getForm(),
updatedRecord = MyModel.create();
form.updateRecord(updatedRecord); //saved all the data from the form, to empty object
var errors = updatedRecord.validate(); //validate the object
if (errors.isValid()) { //if the object is valid, then save the data to the model associated with the form.
form.updateRecord(form.getRecord());
}
else {
form.markInvalid(errors);
}
}
ロジックは非常に単純であり、私は、オブジェクトの新しいインスタンスを作成し、それを検証します。検証がOKの場合は、フォーム内のオブジェクトにデータを保存します。フォーム内のオブジェクトにはデータが保存され、保存されていない場合はエラーが表示されます。