Insider Javascript Sample
unknown
javascript
a year ago
4.6 kB
16
Indexable
<script>
require([
'jquery',
'domReady!'
], function ($) {
setTimeout(function () {
$('#amform-form-76').on('submit', function (e) {
e.preventDefault();
const formDataArray = $(this).serializeArray();
let fullname = '';
let email = '';
let phonenumber = '';
let city = '';
let address_line_1 = '';
let address_line_2 = '';
let race = '';
let gender = '';
let dob = '';
let gdpr_optin = true;
let country = '';
let state = '';
let postal = '';
let sample_requestor = 'LIBRESSE® MAXI FIT TRIAL PACK (PAD & LINER)';
formDataArray.forEach(field => {
switch (field.name) {
case 'full-name':
fullname = field.value;
break;
case 'email-address':
email = field.value;
break;
case 'phone-number':
phonenumber = field.value;
break;
case 'city':
city = field.value;
break;
case 'address-line-1':
address_line_1 = field.value;
break;
case 'address-line-2':
address_line_2 = field.value;
break;
case 'race':
race = $(`select[name="race"] option:selected`).text();
break;
case 'gender':
gender = $(`select[name="gender"] option:selected`).text();
break;
case 'dob':
let inputDate = new Date(field.value);
let year = inputDate.getFullYear();
let month = ('0' + (inputDate.getMonth() + 1)).slice(-2);
let day = ('0' + inputDate.getDate()).slice(-2);
dob = `${year}-${month}-${day}`;
break;
case 'country':
country = $(`select[name="country"] option:selected`).text();
break;
case 'state':
state = $(`select[name="state"] option:selected`).text();
break;
case 'postal':
postal = $(`select[name="postal"] option:selected`).text();
break;
}
});
window.insider_object = window.insider_object || {};
window.insider_object.user = {
"gender": gender,
"birthday": dob,
"gdpr_optin": true,
"name": fullname,
"email": email,
"email_optin": true,
"phone_number": phonenumber,
"sms_optin": true,
"whatsapp_optin": true,
"language": "en_US",
"state": state,
"city": city,
"custom": {
"address_line_1": address_line_1,
"address_line_2": address_line_2,
"race": race,
"country": country,
"postal": postal,
"sample_requestor": sample_requestor
}
};
Insider.eventManager.dispatch('init-manager:re-initialize');
const phoneNumberPattern = /^\+60(?!([0-9])\1+$)[0-9]{8,10}$/;
if (!phoneNumberPattern.test(phonenumber)) {
return;
}
$(this).find('button[type="submit"]').text('Submitting...').prop('disabled', true);
setTimeout(() => {
this.submit();
}, 3000);
});
}, 5000);
});
</script>
Editor is loading...