javascript - एक्स्टजेएस-घटक आइटम मान कैसे प्राप्त करें




extjs (3)

मेरे पास एक घटक है जैसा अनुसरण करें:

{
    xtype: 'fieldcontainer',
    layout: 'hbox',
    id: 'article-level-container',
    defaultType: 'textfield',
    fieldDefaults: {
        labelAlign: 'top'
    },
    items: [{
        fieldLabel: 'LEVEL',
        name: 'artLevel',
        inputWidth: 216,
        margins: '0 5 5 0',
        allowBlank: false,
        fieldStyle: 'text-align: right; font-size: 13pt; background-color: #EAFFCC;'
    }, {
        fieldLabel: 'VALUE',
        name: 'artValue',
        inputWidth: 216,
        allowBlank: false,
        blankText: 'zorunlu alan, boş bırakılamaz',
        fieldStyle: 'text-align: right; font-size: 13pt; background-color: #EAFFCC;',
        listeners: {
            change: function(textfield, newValue, oldValue) {
                if (oldValue == 'undefined' || newValue == '') {
                    Ext.getCmp('btnArticleSave').disable();
                } else {
                    Ext.getCmp('btnArticleSave').enable();
                }
            }
        }
    }]
} 

मैं दूसरा आइटम fieldLabel मान प्राप्त करना चाहता हूं (इस केस में VALUE)।

  • मैं इस फ़ील्ड को onReady फ़ंक्शन के बाहर कैसे प्राप्त कर सकता हूं?
  • मैं इस फ़ील्ड लेबल को नए मान के साथ कैसे बदल सकता हूं (मैं फ़ील्ड लेबल को चयनित कॉम्बो बॉक्स मान से बदलना चाहता हूं)

अद्यतन मैं निम्नलिखित की कोशिश की:

var artField = Ext.ComponentQuery.query('#articleValueField');
console.log(artField);


Answers

कुछ तरीके लेकिन आम Ext.ComponentQuery का उपयोग Ext.ComponentQuery :

अपनी फ़ील्ड को एक itemId: 'theField' अपनी कॉन्फ़िगर करें जैसे itemId: 'theField' :

 var field= Ext.ComponentQuery.query('#theField')[0];
 field.setFieldLabel(valueFromCombo);

अपने कॉम्बो में change श्रोता को जोड़ें, आप ऊपर और नीचे का उपयोग कर सकते हैं (जो भी घटक प्रश्न हैं)

listeners: {
  change: function(combo) {
    var form = combo.up('#form');
    var field = form.down('#theField');
    field.setFieldLabel(lookupValueFromCombo);
  }
}

Ext जेएस में किसी भी विन्यास सेटिंग्स को एक सेटर और प्राप्तकर्ता मिलेगा याद रखें, इस प्रकार fieldLabel को fieldLabel getFieldLabel() और setFieldLabel(s) विधियों मिल गया है।

ऊपर संपादित केवल ext js 4.1+ के साथ ext js 4.0+ के साथ किया जा सकता है:

field.labelEl.update('New Label');

कॉम्बोक्स चयनित आइटम कॉम्बो श्रोता के बाहर पाने के लिए

yourComboboxName.on('change', function (combo, record, index) {

            alert(record);  // to get the selected item

            console.log(record);  // to get the selected item

        });

मैं ईमानदारी से न तो सुझाव दूंगा। मैं उस व्यवहार के लिए एक शैलीबद्ध <button></button> उपयोग करूंगा।

button.link {
  display: inline-block;
  position: relative;
  background-color: transparent;
  cursor: pointer;
  border: 0;
  padding: 0;
  color: #00f;
  text-decoration: underline;
  font: inherit;
}
<p>A button that looks like a <button type="button" class="link">link</button>.</p>

इस तरह आप अपना ऑनक्लिक असाइन कर सकते हैं। मैं तत्व टैग पर onclick विशेषता का उपयोग न करने के लिए स्क्रिप्ट के माध्यम से बाध्यकारी भी सुझाव देता हूं। एकमात्र गोचा पुराना आईईएस में psuedo 3 डी टेक्स्ट प्रभाव है जिसे अक्षम नहीं किया जा सकता है।

यदि आपको ए तत्व का उपयोग करना है , तो javascript:void(0); उपयोग करें javascript:void(0); पहले से ही उल्लेख किए गए कारणों के लिए।

  • यदि आपका ऑनक्लिक ईवेंट विफल रहता है तो हमेशा अवरोध करेगा।
  • गलती लोड कॉल नहीं होगी, या हैश परिवर्तन के आधार पर अन्य घटनाओं को ट्रिगर नहीं करेगा
  • हैश टैग अप्रत्याशित व्यवहार का कारण बन सकता है यदि क्लिक (फ्लाई फेंकता है) से बचता है, तब तक इससे बचें जब तक कि यह उचित गिरावट के माध्यम से न हो, और आप नेविगेशन इतिहास को बदलना चाहते हैं।

नोट: आप javascript:void('Delete record 123') जैसे javascript:void('Delete record 123') को प्रतिस्थापित कर सकते हैं javascript:void('Delete record 123') जो एक अतिरिक्त संकेतक के रूप में कार्य कर सकता है जो दिखाएगा कि क्लिक वास्तव में क्या करेगा।





javascript extjs