2017-02-03 1 views
0

Ich versuche, Canada Post Address Complete auf meiner Form zu verwenden, als solcheCanada Post AddressComplete auf „bevölkern“ nicht funktioniert

var fields = [ 
         { element: "street_address", field: "Line1" }, 
         { element: "city_address", field: "City", mode: pca.fieldMode.POPULATE }, 
         { element: "postal_code", field: "PostalCode", mode: pca.fieldMode.POPULATE }, 
         { element: "country", field: "CountryName", mode: pca.fieldMode.COUNTRY } 
        ], 
     options = {key: KEY}, 
     control = new pca.Address(fields, options); 

    addressComplete.listen('load', function(control) { 
      control.listen("populate", function (address) { 
       if(address.ProvinceCode == "ON"){ 
       console.log("ONTARIO"); 
        document.getElementById('province').selectedIndex = 2; 
       } 
       else if(address.ProvinceCode == "QC"){ 
        document.getElementById('province').selectedIndex = 3; 
       } 
      }); 
     }); 

ich in der Lage bin für eine Adresse zu suchen und einige Felder Automatisch-Bestücken haben. Die Provinz in meinem Formular ist ein Dropdown-Menü, in dem ich den Hörer wie auf der Website vorgeschlagen verwenden möchte, aber es funktioniert nicht? Könnte mich bitte jemand wissen lassen, was ich falsch mache?

Antwort

1

Ich habe versucht, mit der API zu spielen, und ich konnte keine Ereignisse auf dem addressComplete Objekt, sondern das ready Ereignis ausgelöst werden. Da wir jedoch alle eine control Instanz vorbereitet haben, habe ich nur den load Listener entfernt und den populate Event-Handler direkt an das control Objekt angehängt, das wir konstruiert haben. Dies schien zu funktionieren.

//addressComplete.listen('load', function (control) { 
control.listen('populate', function (address) { 
    // TODO: Handle populated address here. 
}); 
//}); 
+0

Sie haben Recht! Vielen Dank :) – ultimatecoder