仅在更改时验证表格
Validate Form on Change ONLY
由于我们导入的大部分数据在技术上都存在验证错误,因此用户无法在不先更正之前输入的错误数据的情况下更新字段。这不会是一个问题,但很多时候该用户没有在该字段中输入正确值所需的信息,但我们仍然需要保存他们的更新。
是否可以禁用 DynamicForm
提交时的验证?
Is it possible to disable the validate on submit for a DynamicForm?
有一个 disableValidation 属性,它禁用客户端验证器。
迄今为止我能找到的最佳解决方案。
我正在禁用验证并覆盖 getValues
,这是作为 saveData
的一部分调用的,因此我手动解析所有字段并查找错误。如果我发现错误,我将其从 return 值中删除并将其存储在 valuesManager.invalidatedFields
下。
如果一个字段有错误,它不会被包含在保存中,但因为服务器将 return 原始值我不得不覆盖 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
提交时的验证?
Is it possible to disable the validate on submit for a DynamicForm?
有一个 disableValidation 属性,它禁用客户端验证器。
迄今为止我能找到的最佳解决方案。
我正在禁用验证并覆盖 getValues
,这是作为 saveData
的一部分调用的,因此我手动解析所有字段并查找错误。如果我发现错误,我将其从 return 值中删除并将其存储在 valuesManager.invalidatedFields
下。
如果一个字段有错误,它不会被包含在保存中,但因为服务器将 return 原始值我不得不覆盖 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;
}
});