Я хочу использовать формы плагинов гравитации на некоторых целевых страницах. Я могу вызвать функцию скрипта java после того, как пользователь отправит форму. Проблема, с которой я сталкиваюсь, заключается в том, что гравитационные формы не предоставили возможность редактировать атрибуты имен html элементов при создании любой гравитационной формы, после отправки формы, когда я получаю данные через идентификатор формы, я не могу понять, что к чему. Предположим, если я создал поле электронной почты в форме, если имя атрибута входного тега равно «email», я могу выяснить, что это аналогично электронной почте для остальных полей, но имя динамически генерируется плагином гравитации и его значениями, такими как input_2. Я хочу получить соответствующие имена полей, такие как электронная почта, телефон, страна, город, адрес и т. Д. c. как API, который я использую для хранения данных, ожидает эти имена. Может кто-нибудь помочь мне исправить это и плавно интегрировать гравитационные формы с API, используя javascript. Вот фрагмент кода, который я использую:
<script>
document.getElementById('form_id').onsubmit = function () {
saveFormData('form_id');
}
function saveFormData (formId) {
var data = serializeFormData(document.querySelector('#' + formid));
axios({ method: 'post', url: url, data: formData }).then(function (resp) {
if (resp && resp.data && resp.data.success) {
alert("Thank you for contacting us!");
} else {
alert(resp.data.error);
}
}).catch(function (err) {
if (err.response && err.response.data && err.response.data.error) {
if (err.response.data.error === 'Validation Error') {
for (var key in err.response.data.fields) {
return alert(err.response.data.fields[key][0]);
}
} else {
return alert(err.response.data.error);
}
} else {
return alert("Something went wrong!");
}
});
return false;
}
function serializeFormData(formElement) {
const values = {}, inputs = formElement.elements;
for (let i = 0; i < inputs.length; i++) {
if (inputs[i].name && inputs[i].type === "radio" && inputs[i].checked) {
values[inputs[i].name] = inputs[i].value;
} else if (inputs[i].name) {
values[inputs[i].name] = inputs[i].value;
}
}
return values;
}
</script>
Приведенный выше код будет размещен на целевой странице, которая будет отправлять данные, предоставленные пользователем. Пожалуйста, помогите мне, если у вас есть какие-либо предложения по интеграции форм плагина гравитации с моим API.