我已经建立了一个带有验证规则的模型,并希望将它们与放入表单的信息进行比较。到目前为止,我已经声明了值并且它们验证了
Ext.define('FirstApp.view.ReviewsContainer', {
extend: 'Ext.NavigationView',
xtype: 'reviewscontainer',
config: {
title: 'Reviews',
iconCls: 'compose',
items: [{
xtype: 'reviews'
}, {
xtype: 'button',
align: 'right',
ui: 'confirm',
text: 'Leave Review',
docked: 'bottom',
centered: 'true',
handler: function () {
if (!this.overlay) {
this.overlay = Ext.Viewport.add({
xtype: 'formpanel',
requires: ['FirstApp.model.ReviewCheck'],
id: 'reviewed',
modal: true,
hideOnMaskTap: true,
showAnimation: {
type: 'popIn',
duration: 250,
easing: 'ease-out'
},
hideAnimation: {
type: 'popOut',
duration: 250,
easing: 'ease-out'
},
centered: true,
width: Ext.os.deviceType == 'Phone' ? 260 : 400,
height: Ext.os.deviceType == 'Phone' ? 220 : 400,
styleHtmlContent: true,
items: [{
docked: 'top',
xtype: 'toolbar',
title: 'Leave Review'
},
{
xtype: 'fieldset',
title: 'Reviews',
items: [{
xtype: 'textfield',
name: 'name',
label: 'Name',
placeHolder: 'name',
id: 'text'
}, {
xtype: 'textfield',
name: 'business',
label: 'Place'
}, {
xtype: 'textfield',
name: 'rating',
label: 'Rating'
}, {
xtype: 'textareafield',
name: 'review',
label: 'Review'
}
]
}, {
items: [{
xtype: 'button',
text: 'Submit',
ui: 'confirm',
handler: function () {
console.log("Hello");
//var values = Ext.getCmp('reviewed').getValues();
// var text= Ext.getCmp('text').getValue();
// var value = Ext.ComponentQuery.query('#text')[0].getValue();
//var reviewCheckForm = this.getReviewCheck();
//var currentForm = reviewCheckForm.getRecord();
// var newValues = reviewed.getValues();
// currentForm.set("name", newValues.name);
// currentForm.set("business", newValues.business);
// currentForm.set("review", newValues.review);
var form = formPanel.getForm(); //Get the basicform instance
var record = form.getRecord(); //Get your record loaded in the form
form.updateRecord(record); //Update your record with the current form values
var errors = record.validate(); //Validate your record
// console.log(newValues);
// var data = Ext.create('FirstApp.model.ReviewCheck', {
// name: 'dfhd',
// business: 'sdfs',
// id: 1,
// review: 'sfsd'
// });
// var errors = data.validate();
// var errors = currentForm.validate();
console.log('Number of errors: ' + errors.getCount());
if (!errors.isValid()) {
console.log('Number of errors: ' + errors.getCount());
errors.each(function (item, index, length) {
// Each item in the errors collection is an instance of the Ext.data.Error class.
console.log('Field "' + item.getField() + '" ' + item.getMessage());
});
Ext.Msg.alert('Form is invalid!');
} else {
var values = Ext.getCmp('reviewed').getValues();
// prints the values filled in the form
// text fields of name, email and message.
console.log(values.name + "," + values.place + "," + values.rating);
Ext.Ajax.request({
url: 'http://insert.php',
params: values,
success: function (response) {
var text = response.responseText;
Ext.getCmp('reviewed').reset();
Ext.Msg.alert('Success', "Review successfully created.", Ext.getCmp('reviewed').hide(), Ext.StoreMgr.get('Reviews').load());
console.log("Im Here");
}
});
}
}
}
]
}
],
scrollable: false
});
}
this.overlay.show();
}
}
]
}
})
Ext.define('FirstApp.model.ReviewCheck', {
extend: 'Ext.data.Model',
config: {
fields: [{
name: 'name',
type: 'string'
}, {
name: 'business',
type: 'string'
}, {
name: 'id',
type: 'int'
}, {
name: 'review',
type: 'string'
}
], // fields
validations: [{
field: 'name',
type: 'presence',
error: 'Name must be present',
message: 'Name is required.'
}, {
field: 'business',
type: 'presence',
message: 'Place is required.'
}, {
field: 'review',
type: 'presence',
message: 'Review is required.'
}
] // validations
} // config
}); // define()
我如何设置名称、业务、ID 并查看从表单中获取的值