インポートされたデータの多くは技術的に検証エラーがあるため、ユーザーは以前に入力した不良データを修正することなくフィールドを更新することができません。このユーザーには、そのフィールドに正しい値を入力するのに必要な情報が何度もありませんが、まだ更新内容を保存する必要があるという点を除けば、問題はありません。変更時にフォームを確認する
DynamicForm
の送信時に検証を無効にすることはできますか?
インポートされたデータの多くは技術的に検証エラーがあるため、ユーザーは以前に入力した不良データを修正することなくフィールドを更新することができません。このユーザーには、そのフィールドに正しい値を入力するのに必要な情報が何度もありませんが、まだ更新内容を保存する必要があるという点を除けば、問題はありません。変更時にフォームを確認する
DynamicForm
の送信時に検証を無効にすることはできますか?
私が今までに見つけた最良の解決策。
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;
}
});
DynamicFormの送信時に検証を無効にすることはできますか?
disableValidation属性があり、クライアント側のバリデータが無効になります。
これは私が探している投稿の検証を妨げているが、それはまた、私が保存したいと思っている変更を検証するのを壊している。 – stackoverfloweth