2016-04-12 18 views
0

インポートされたデータの多くは技術的に検証エラーがあるため、ユーザーは以前に入力した不良データを修正することなくフィールドを更新することができません。このユーザーには、そのフィールドに正しい値を入力するのに必要な情報が何度もありませんが、まだ更新内容を保存する必要があるという点を除けば、問題はありません。変更時にフォームを確認する

DynamicFormの送信時に検証を無効にすることはできますか?

答えて

0

私が今までに見つけた最良の解決策。

saveDataの一部として呼び出されるgetValuesの無効化とオーバーライドを無効にしているため、手動で任意のフィールドを解析してエラーを探します。エラーが見つかった場合は戻り値から取り除き、valuesManager.invalidatedFieldsの下に格納します。

フィールドにエラーがあった場合、保存には含まれませんが、サーバーは元の値を返して、無効な変更が上書きされるのを防ぐために、setValuesをオーバーライドする必要があります。

また、getValuesは初期ロード時に呼び出されるため、ロード時にも検証されます。

isc.ValuesManager.create({ 
    disableValidation: true, 
    invalidatedFields: {}, 
    setValues: function(values){ 
     console.log("setting values..", this.invalidatedFields); 
     for (var key in this.invalidatedFields) { 
      if (this.invalidatedFields.hasOwnProperty(key)) { 
       values[key] = this.invalidatedFields[key]; 
      } 
     } 
     this.Super("setValues", arguments); 
    }, 
    getValues: function() { 
     this.invalidatedFields = []; 
     var data = this.Super("getValues"); 
     for (var key in data) { 
      if (data.hasOwnProperty(key)) { 
       var form = this.getMemberForField(key); 
       if (form && !form.getField(key).validate()) { 
        console.log(key + " failed validation", data[key]); 
        this.invalidatedFields[key] = data[key]; 
        delete data[key]; 
       } 
      } 
     } 
     return data; 
    } 
}); 
1

DynamicFormの送信時に検証を無効にすることはできますか?

disableValidation属性があり、クライアント側のバリデータが無効になります。

+0

これは私が探している投稿の検証を妨げているが、それはまた、私が保存したいと思っている変更を検証するのを壊している。 – stackoverfloweth

関連する問題