2016-04-12 1 views
-2

Ich bin Neuling zu ExtJS Ich habe die folgenden Zeilen Code, der gut auf ausgewählte Ereignis funktioniert und jetzt plane ich auf Blur-Ereignis zu addieren.Arbeiten an wählen, aber nicht auf Unschärfe - EXTJS

autoResolve.on("select" || "blur", function (component, record, index) { 
     var fieldSet = utils.getComponentFromMngr(component.id.split("~")[0]); 
      if(autoResolveData.CURRSEL){ //Set previous selection property 

       var xmlElem = fieldSet.DomainXML.documentElement.childNodes[1]; 
        xmlElem.setAttribute("PR_DOMAINTYPE",autoResolveData.FILL_SUBTYP); 
        xmlElem.setAttribute("PR_DOMAINID", record.get("ITEMID")); 
        xmlElem.setAttribute("PR_DOMAINVALUE", record.data.TITLE); 
        fieldSet.DomainObj.push({PRDomainType:autoResolveData.FILL_SUBTYP,PRDomainID:record.get("ITEMID"),PRDomainValue:record.data.TITLE}); 
      } 

es noch funktioniert auf ausgewählten Ereignis in Ordnung, aber nicht auf Blur Veranstaltung, wo ich falsch bin gehen bitte vorschlagen

+0

Wo hast du '‚wählen‘|| 'Unschärfe' aus? –

Antwort

0

"select" || "blur"select zurückkehren wird, wie Sie herausfinden können, wenn Sie die folgenden in Browser-Konsole eingeben:

console.log("select" || "blur"); 

Außerdem "blur" Ereignis hat nicht record als zweiten Parameter. Sie müssten schauen, wie Sie record erhalten und die Funktion mit einem gültigen record Parameter aufrufen.

Was Sie wollen, zu erreichen, ist in etwa die folgenden:

var myFunction = function (component, record, index) { 
    var fieldSet = utils.getComponentFromMngr(component.id.split("~")[0]); 
    if(autoResolveData.CURRSEL){ //Set previous selection property 
     var xmlElem = fieldSet.DomainXML.documentElement.childNodes[1]; 
     xmlElem.setAttribute("PR_DOMAINTYPE",autoResolveData.FILL_SUBTYP); 
     xmlElem.setAttribute("PR_DOMAINID", record.get("ITEMID")); 
     xmlElem.setAttribute("PR_DOMAINVALUE", record.data.TITLE); 
     fieldSet.DomainObj.push({PRDomainType:autoResolveData.FILL_SUBTYP,PRDomainID:record.get("ITEMID"),PRDomainValue:record.data.TITLE}); 
    } 
}; 
autoResolve.on({ 
    select:myFunction, 
    blur:function(component) { 
     var record = ... // your special magic here 
     return myFunction(component,record); 
    } 
}); 
+0

Hallo vielen Dank für Ihre Antwort. kann ich den Event-Handler bei Blur-Ereignis auslösen. –

+0

Sie können, aber Sie sollten nicht, weil es mögliche Nebenwirkungen mit anderen Ereignishandlern gibt. Ich habe Ihnen (mehr oder weniger) sauberen Code zur Verfügung gestellt. Sie müssten immer den "ausgewählten" Datensatz während der Unschärfe berechnen und zur Verfügung stellen, darum geht es nicht. – Alexander