3
我正在做eforms框架設計,在這裏會有多種產品可用,每種產品都會有不同類型的表單。在拖放時會出現在表單面板中,這些表單面板數據是從Json文件中取回的。我們有每個表單的json文件。如果我想在表單中爲這些字段添加驗證,意味着如何實現這一點,bcoz表單字段在json中可用,這將在拖放時動態生成。Extjs中動態生成表單的驗證
你們可以幫我解決這個問題嗎?
感謝和問候 rajNaveen
我正在做eforms框架設計,在這裏會有多種產品可用,每種產品都會有不同類型的表單。在拖放時會出現在表單面板中,這些表單面板數據是從Json文件中取回的。我們有每個表單的json文件。如果我想在表單中爲這些字段添加驗證,意味着如何實現這一點,bcoz表單字段在json中可用,這將在拖放時動態生成。Extjs中動態生成表單的驗證
你們可以幫我解決這個問題嗎?
感謝和問候 rajNaveen
你關聯的模式,用形式?如果是這樣,您可以將驗證邏輯放入模型中。 例如:
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);
}
}
邏輯內,這是非常簡單的,我創建該對象的一個新實例,並驗證它。如果驗證正確,則將數據保存到表單中的對象,如果不是,則顯示錯誤。