javascript - 在 Extjs 中动态生成的表单中的验证

标签 javascript validation extjs

我正在做电子表格框架设计,其中将有多种产品可用,每种产品都有不同类型的表格。拖放它会出现在表单面板中,这些表单面板数据是从 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/

相关文章:

使用 keyup 和模糊进行 jQuery 文本框验证

validation - 如何设置 JSR303 bean 验证的检查顺序

Extjs 3.3.3 网格 - 禁用网格行

javascript - js 需要基本循环来对两个字段求和,因为它们是多个组

javascript - 将文件保存在 angular.js 中的特定文件夹中

php - 使用准备好的声明无法清理表单

python - 为什么我的 extjs 组合框没有动态填充?

javascript - Extjs 远程组合验证问题

javascript - 我如何从列中提取单个数据并使用它来命名文档?

javascript - Packery - 通过 jquery 单击添加元素