javascript - कुछ स्थिति पर टैगफील्ड का स्वत:फ़ोकस कैसे करें




extjs extjs6 (2)

मेरे पास एक टैगफील्ड है जिसमें मैं कुछ मान लोड कर रहा हूं और सर्वर को भेज रहा हूं। मुझे क्या चाहिए जब वह फिर से लोड होता है जो टैगफील्ड घटक फिर से, उन मान को स्वचालित रूप से चयनित होना चाहिए वर्तमान में वे स्वचालित रूप से चयनित नहीं हैं, लेकिन अगर मैं टैगफील्ड पर फ़ोकस दे रहा हूं तो वे मान चयनित के रूप में आ रहे हैं।

कुछ स्थिति पर स्वतः ध्यान देने का तरीका क्या है हमेशा नहीं।

अभी मैं सिर्फ डेटा प्रदर्शित कर रहा हूं लेकिन यह सही तरीका नहीं है और आईई में यह काम नहीं कर रहा है।

यहां मैं जो वर्तमान में कर रहा हूं

if(myField.xtype == "tagfield"){
        myField.xtype.setValue(myValue);
        myField.xtype.inputEl.set({'placeholder':myValue});
    }

मैं क्या चाहता हूँ

if(myField.xtype == "tagfield"){
        // Automatic Focus  OR
        // Someway by which I can set the value
    }

Answers

मैं मान रहा हूँ कि आपका tagfield कॉन्फ़िग ऑब्जेक्ट इस तरह दिखता है

var store =  Ext.create('Ext.data.ArrayStore',{ 
fields: [
    'abbr',
    'state',
    'description',
    'country'
],
data: [
    [0, 'AL', 'Alabama', 'The Heart of Dixie'],
    [1, 'AK', 'Alaska', 'The Land of the Midnight Sun'],
    [2, 'AZ', 'Arizona', 'The Grand Canyon State'],
    [3, 'AR', 'Arkansas', 'The Natural State'],
    [4, 'CA', 'California', 'The Golden State'],
    [5, 'CO', 'Colorado', 'The Mountain State'],
    [6, 'CT', 'Connecticut', 'The Constitution State'],
    [7, 'DE', 'Delaware', 'The First State'],
    [8, 'DC', 'District of Columbia', "The Nation's Capital"],
    [9, 'FL', 'Florida', 'The Sunshine State'],
    [10, 'GA', 'Georgia', 'The Peach State'],
    [11, 'HI', 'Hawaii', 'The Aloha State'],
    [12, 'ID', 'Idaho', 'Famous Potatoes']
] 
});

{
        xtype: 'tagfield',
        fieldLabel: 'Select a state',
        store: store,
        reference: 'states',
        displayField: 'state',
        valueField: 'abbr',
        filterPickList: true,
        queryMode: 'local',
}

इस कॉन्फ़िग से अगर आप Alabama,Alaska,Arizona जैसे क्षेत्रों को टैग क्षेत्रों में चुनते हैं Alabama,Alaska,Arizona तो आपको इस ['AL','AK','AZ'] तरह मूल्य मिलेगा क्योंकि टैग फ़ील्ड कॉन्फ़िग में आपने valueField: 'abbr' सेट की है valueField: 'abbr' और वे मान सहेजने के लिए सर्वर पर जाएंगे

पुनः लोड करने के बाद यदि आप उन मानों का चयन करना चाहते हैं तो आपको उन तीन मानों को देना होगा क्योंकि यह है। पसंद

if(myField.xtype == "tagfield"){//tagfield is in lower case 
         myField.setValue(['AL','AK','AZ']); // myField.setValue(myValue);
}

यदि आप अभी भी उसी फ़ील्ड पर ध्यान केंद्रित करना चाहते हैं और यदि आप फ़ोकस पर टैगफील्ड की दुकान लोड कर रहे हैं तो आप टैग फ़ील्ड के focus विधि का उपयोग कर सकते हैं।

if(myField.xtype == "tagfield"){ //tagfield is in lower case 
       myField.focus(true,true,function(){
       myField.getStore().load({
          callback: function(records, operation, success) {
              myField.setValue(['AL','AK','AZ']);//myField.setValue(myValue);                   
          }
       });
    }); 
}

उम्मीद है की यह मदद करेगा।

यदि आपके पास विजेट के रूप में टैगफ़ील्ड का उपयोग किया गया है, तो आप onWidgetAttach पर widgetcolumn कॉन्फ़िगर पर उपयोग कर सकते हैं और आप उस पर फ़ंक्शन निर्दिष्ट कर सकते हैं।

कृपया लिंक देखें


मुझे यह निर्धारित करने का प्रयास करते समय निम्नलिखित स्निपेट उपयोगी साबित हुआ है कि वर्तमान में कौन सा तत्व केंद्रित है। निम्नलिखित को अपने ब्राउज़र के कंसोल में कॉपी करें, और हर सेकेंड यह वर्तमान तत्व के विवरण मुद्रित करेगा जिसमें फोकस है।

setInterval(function() { console.log(document.querySelector(":focus")); }, 1000);

पूरे तत्व को प्रिंट करते समय सटीक तत्व को इंगित करने में मदद के लिए console.log को संशोधित करने के लिए स्वतंत्र महसूस करें, तत्व को इंगित करने में आपकी सहायता नहीं करता है।





javascript extjs extjs6