3

私は eforms フレームワークの設計を行っています。これには複数の製品があり、各製品にはさまざまな種類のフォームがあります。ドラッグ アンド ドロップでフォーム パネルに表示されます。これらのフォーム パネル データは Json ファイルから取得されます。各フォームのjsonファイルがあります。フォーム内のこれらのフィールドに検証を追加したい場合は、これをどのように達成できるかを意味します。bcoz フォーム フィールドは、ドラッグ アンド ドロップで動的に生成される json で利用できます。

みんなこれで私を助けてくれませんか。

ありがとう、よろしく

4

1 に答える 1

2

モデルとフォームを関連付けていますか?その場合は、モデルに検証ロジックを配置できます。例えば:

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

この中のロジックは非常に単純です。オブジェクトの新しいインスタンスを作成して検証しました。検証に問題がない場合は、フォーム内のオブジェクトにデータを保存します。そうでない場合は、送信され、エラーが表示されます。

于 2012-05-18T09:22:29.257 に答える