有一个下拉框. 期望是当触发下拉事件的时候, 给出提示: 真的要切换吗?
用户选择是, 切换; 否则, 不与切换.
参考API, 得到:
[quote]
beforeselect : ( Ext.form.ComboBox combo, Ext.data.Record record, Number index )
Fires before a list item is selected. Return false to cancel the selection.
[/quote]
OK.
于是我的代码如下:
[code="js"]
Ext.onReady(function(){
var comboBox = new Ext.form.ComboBox({
store:new Ext.data.SimpleStore({
fields: ['name']
,data: [['A'], ['B']]
}),
valueField: 'name', displayField: 'name',
editable: false,forceSelection: true,mode:'local',
blankText:'选择', emptyText:'选择' ,triggerAction: 'all'
,listeners:{
'beforeselect':function(combo, record, index){
// confirm不起作用
Ext.MessageBox.confirm("提示","确定要切换?",
function(e){
if('yes' == e){
return true;
}else{
return false;
}
}
);
// return false; // 难道不能与用户交互?
}
}
});
comboBox.render(document.body);
});
[/code]
在beforeselect中有一个confirm与客户进行交互.
[color=red]实际效果却是, 当触发beforeselect事件, 出现confirm等待用户抉择是还是否的时候.
下拉框的值已经改变了.[/color]