मेरे पास मेरे extjs एप्लिकेशन में एक कॉम्बो है और मैं दिखाना चाहता हूं कि 'क्या आप सुनिश्चित हैं?' उपयोगकर्ता को विंडो की पुष्टि करें और अगर उपयोगकर्ता ने कहा तो बदलना बंद करें।मैं ExtJs में combobox परिवर्तन ईवेंट पर उपयोगकर्ता की पुष्टि कैसे प्राप्त कर सकता हूं?
चूंकि जावास्क्रिप्ट की पुष्टि बॉक्स तुल्यकालिक है, यह ठीक से काम करता है। लेकिन Ext JS का उपयोग करके, पुष्टिकरण संदेश दिखाया गया है, और मेरा शेष कोड उपयोगकर्ता प्रतिक्रिया देने से पहले निष्पादित किया जाएगा।
// JavaScript confirm box
{
xtype: 'combo',
...
...
...
listeners: {
beforeselect: function(combo, record, index) {
if(confirm('Are you sure ?') == false)
{
return false; // prevent combo from changing
}
// else continue
}
}
}
// Ext JS message box (to confirm)
{
xtype: 'combo',
...
...
...
listeners: {
beforeselect: function(combo, record, index) {
Ext.Msg.show({
title: 'Warning',
msg: 'Are You Sure ?',
buttons: Ext.Msg.YESNO,
fn: function(btn) {
if (btn == 'yes') {
// continue and set new value on combo
}
else if (btn == 'no') {
// prevent combo from changing
}
}
});
}
}
}
समस्या Ext.Msg.show
कॉलबैक फ़ंक्शन हो जाता है और उपयोगकर्ता जवाब के लिए इंतजार नहीं कर रहा है और हम बता गया बदलते को रोकने में सक्षम नहीं हो रहा है: यहाँ मेरी कोड है।
मुझे क्या करना चाहिए?
जो काम नहीं कर रहा है, क्योंकि beforeselect में हम अभी तक नए चयनित मूल्य को नहीं जानते हैं! –
कृपया सोचें और फिर –
का उत्तर दें आप 'beforeselect' में चयनित मान जानते हैं, यह दूसरा तर्क है (उपरोक्त व्यक्ति के उत्तर में रिकॉर्ड)। मान प्राप्त करने के लिए आप 'record.get ([combos value field]) का उपयोग कर सकते हैं;' – Geronimo