在Extjs中以动态生成的形式进行验证

时间:2012-05-11 05:38:14

标签: javascript validation extjs

我正在进行eforms框架设计,在这将有多个产品可用,每个产品将有不同的形式。在拖放时它将出现在表单面板中,这些表单面板数据将从Json文件中检索。我们为每个表单都有json文件。如果我想在表单中为这些字段添加验证意味着我该如何实现这一点,bson表格字段在json中可用,它将在拖放时动态生成。

你能帮我解决这个问题。

感谢和问候 rajNaveen

1 个答案:

答案 0 :(得分:2)

您是否将模型与表单相关联?如果是这样,您可以在模型中加入验证逻辑。 例如:

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

但是你需要一点魔力让他们使用表格。这是来自控制器的代码(使用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);
    }
}

这里面的逻辑非常简单,我创建了一个新的对象实例并对其进行验证。如果验证正常,则将数据保存到表单中的对象,如果没有,则将其显示,然后显示错误。