Sencha Ext.form.Panel(PC, classic)
2024. 4. 8. 23:16ㆍ카테고리 없음
Ext.define('{app 이름}', {
extend: 'Ext.form.Panel',
xtype: '{app xtype}',
// 창 close 버튼
closable: true,
title: '{app title}',
border: true,
bodyPadding: 5,
width: 500,
// ajax에서 정의하고 있어서 제거
//url: '{url 정보}',
// defaultType을 지정하면 아래에서 xtype이 없으면 defaultType 적용
defaultType: 'textfield',
layout: 'anchor',
defaults: {
labelWidth: 150,
anchor: '50%'
},
items: [{
fieldLabel: '{라벨}',
name: '{변수이름}',
allowBlank: false
}, {
// hiddenfiled 정의
xtype: 'hiddenfield',
name: '{변수이름}',
value: '-'
}],
// Reset and Submit buttons
buttons: [{
text: 'Reset',
handler: function() {
// form 내용을 reset
this.up('form').getForm().reset();
}
}, {
text: 'Submit',
jsonSubmit: true,
formBind: true, //only enabled once the form is valid
disabled: true,
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
Ext.MessageBox.wait('Please wait...', 'Submitting');
Ext.Ajax.request({
//async: false,
url: '{url 정보}',
method: 'POST',
headers: { 'Content-Type': 'application/json' },
params : Ext.JSON.encode(form.getValues()),
success: function(conn, response, options, eOpts) {
Ext.MessageBox.hide()
var result = Ext.util.JSON.decode(conn.responseText);
Ext.Msg.alert('Success', result.message);
},
failure: function(conn, response, options, eOpts) {
Ext.MessageBox.hide()
var result = Ext.util.JSON.decode(conn.responseText);
Ext.Msg.alert('Fail', result.message);
}
});
}
}
}],
});
Uncaught Error: You're trying to decode an invalid JSON String: undefined
hiddenfield에 값이 없을 때 발생함