我正在做电子表格框架设计,其中将有多种产品可用,每种产品都有不同类型的表格。拖放它会出现在表单面板中,这些表单面板数据是从 Json 文件中检索的。每个表单都有 json 文件。如果我想向表单中的那些字段添加验证意味着我该如何完成此操作,bcoz 表单字段在 json 中可用,它将在拖放时动态生成。
你们能帮我解决这个问题吗
感谢和问候 拉杰纳文
最佳答案
您是否将模型与表单相关联?如果是这样,您可以将验证逻辑放入模型中。 例如:
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
但是您需要一点魔法才能让他们使用表单。这是来自 Controller 的代码(使用 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);
}
}
其中的逻辑非常简单,我创建了对象的新实例并验证了它。如果验证成功,则将数据保存到表单中的对象中,将提交,如果没有,则显示错误。
关于javascript - 在 Extjs 中动态生成的表单中的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545969/