48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
define([
|
|
'jquery',
|
|
'mage/validation'
|
|
], function ($) {
|
|
'use strict';
|
|
|
|
return function (config, element) {
|
|
var $form = $(element);
|
|
var $submit = $form.find('[type="submit"]');
|
|
var $status = $form.find('[data-role="application-status"]');
|
|
|
|
$form.validation();
|
|
|
|
$form.on('submit.agentApplication', function (event) {
|
|
event.preventDefault();
|
|
|
|
if (!$form.validation('isValid')) {
|
|
return;
|
|
}
|
|
|
|
$submit.prop('disabled', true).addClass('disabled');
|
|
$status.removeClass('success error').empty();
|
|
|
|
$.ajax({
|
|
url: $form.attr('action'),
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: $form.serialize()
|
|
}).done(function (response) {
|
|
if (response.success) {
|
|
$form[0].reset();
|
|
$status.addClass('success').text(response.message);
|
|
} else {
|
|
$status.addClass('error').text(response.message);
|
|
}
|
|
}).fail(function (xhr) {
|
|
var response = xhr.responseJSON || {};
|
|
|
|
$status.addClass('error').text(
|
|
response.message || $.mage.__('Unable to submit your application. Please try again later.')
|
|
);
|
|
}).always(function () {
|
|
$submit.prop('disabled', false).removeClass('disabled');
|
|
});
|
|
});
|
|
};
|
|
});
|