Code:
var et_wrapper = '';
Ext.onReady(function() {
var st = new Date();
var et = st.add(Date.HOUR, 2);
var fm = new Ext.FormPanel({
id:'fmPanel',
layout:'table',
buttonAlign: 'left',
baseCls:'x-form',
layoutConfig: {columns:4},
items:[{
xtype: 'label',
text: '??',
colspan: 1,
width: 60
},{
xtype: 'textfield',
id: 'stimeField',
colspan: 1,
width: 110
},{
xtype: 'label',
text: '??',
colspan: 1,
width: 50
},{
xtype: 'textfield',
id: 'etimeField',
colspan: 1,
width: 110
}],
buttons:[{
text: 'OK',
id: 'okBtn'
},{
text: 'Cancel',
id: 'cclBtn'
}]
});
var viewport = new Ext.Viewport({
items: [fm]
});
// ?????????????????
function calcTime(st, et){
// ??
}
// ??????????????????????????ComboBox?????
function stimeClick(cm,str,pt){
var store = cm.getStore();
var maxr = store.getCount();
var st = str.get('ft');
var et = store.getAt(maxr-1).get('ft');
var tms = calcTime(st, et);
var etTM = new Ext.data.JsonStore({
autoDestroy: true,
autoLoad:true,
data: tms,
fields:['cd', 'ft', 'tm']
});
// ????????????????????????
var el;
own = Ext.get("etimeField").parent();
if (own.id != et_wrapper && et_wrapper != ''){
if ((el=Ext.get("etimeField").next())!=null) el.remove(); // ComboBox???
own.remove();
Ext.get(et_wrapper).insertHtml("afterBegin",'<input type="text" id="etimeField" class="x-form-text x-form-field "/>');
}else{
et_wrapper = own.id;
}
var etimeCombo = new Ext.form.ComboBox({
id: 'etmCombo',
allowBlank: false,
hiddenName: 'etCode',
mode: 'local',
store: etTM,
displayField:'tm',
valueField:'ft',
forceSelection: true,
triggerAction: 'all',
selectOnFocus: true,
applyTo: 'etimeField'
});
}
var tms = calcTime(st, et);
var stTM = new Ext.data.JsonStore({
autoDestroy: true,
autoLoad:true,
data: tms,
fields:['cd', 'ft', 'tm']
});
var stimeCombo = new Ext.form.ComboBox({
id: 'stmCombo',
allowBlank: false,
hiddenName: 'stCode',
mode: 'local',
store: stTM,
displayField:'tm',
valueField:'ft',
forceSelection: true,
triggerAction: 'all',
selectOnFocus: true,
applyTo: 'stimeField'
});
stimeCombo.on('select', function(cm,str,pt){stimeClick(cm,str,pt);});
});
FireBug?HTML???????????????????