Integrating an address lookup tool | XM Community
Skip to main content
Hello again. I'm trying to use a third party service to look up a New Zealand address from a text input field and return an NZ census identifier.



I've taken the original code from the service addressfinder.nz, and it is working fine in this codepen https://codepen.io//pen/vPMBJv, however I'm in no way smart enough to get this working in Qualtrics. If anyone had any pointers for me to research I would be grateful.



I've used my own API key, but the demo key should work. And I've tried referring strait to the input ID e.g. 'document.getElementById("QR~QID4")'.



Thank you!

Dan



Qualtrics.SurveyEngine.addOnload(function() {

var widget, initAddressFinder = function() {

widget = new AddressFinder.Widget(

document.getElementById("QR~"+this.questionId),

'ADDRESSFINDER_DEMO_KEY',

'NZ', {

"address_metadata_params": {

"census": 2018

}

}

);

widget.on('result:select', function(fullAddress, metaData) {

var selected = new AddressFinder.NZSelectedAddress(fullAddress, metaData);



// TO DO - You will need to update these ids to match those in your form

document.getElementById("QR~"+this.questionId).value = metaData.meshblock;

});

};



function downloadAddressFinder() {

var script = document.createElement('script');

script.src = 'https://api.addressfinder.io/assets/v3/widget.js';

script.async = true;

script.onload = initAddressFinder;

document.body.appendChild(script);

};



document.addEventListener('DOMContentLoaded', downloadAddressFinder);

})();
I've gotten this to work, I couldn't ever see the function downloadAddressFinder loading so suspected that the document.addEventListener was the problem. By removing function downloadAddressFinder it now works:



Qualtrics.SurveyEngine.addOnload(function()

{

/*Place your JavaScript here to run when the page loads*/



var inputId = 'QR~' + this.questionId;



var widget, initAddressFinder = function() {

widget = new AddressFinder.Widget(

document.getElementById(inputId),

'MY_KEY',

'NZ', {

"address_metadata_params": {

"census": 2018

}

}

);



widget.on('result:select', function(fullAddress, metaData) {

var selected = new AddressFinder.NZSelectedAddress(fullAddress, metaData);



// TO DO - You will need to update these ids to match those in your form

document.getElementById(inputId).value = metaData.meshblock;

});

};



var script = document.createElement('script');

script.src = 'https://api.addressfinder.io/assets/v3/widget.js';

script.async = true;

script.onload = initAddressFinder;

document.body.appendChild(script);



});

Leave a Reply