У меня есть форма FormStack, в которой используется встроенный код JavaScript, чтобы вызвать API и заполнять раскрывающийся список. Как только я выбираю значение, соответствующие данные JSON анализируются и отображаются на экране в каждом поле, как Empname, Empemail, Supervisoremail, Empfirstname, EmplastName, SuperSorid, Empid, DeptName. Однако, как только я отправлю форму, введенные данные из выбора не сохраняются в FormStack и не включены в отправленную электронную почту. Если я вручную ввожу в инъекционные поля, сохранены значения. Ищу помощь при исправлении. < /P>
```
document.addEventListener("DOMContentLoaded", async function () {
var getLocationHost = window.location.host;
let apiURL;
if (getLocationHost.includes("test")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("dev")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("intg")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("uat")) {
apiURL = 'hidden for asking help on stackoverflow';
} else if (getLocationHost.includes("stage")) {
apiURL = 'hidden for asking help on stackoverflow';
} else {
apiURL = 'hidden for asking help on stackoverflow';
}
// Field IDs in Formstack
const DROPDOWN_FIELD_ID = 'field180567125';
const EMP_NAME_FIELD_ID = 'field180567127';
const EMP_EMAIL_FIELD_ID = 'field180626437';
const SUPERVISOR_EMAIL_FIELD_ID = 'field180567128';
const EMP_FIRST_NAME_FIELD_ID = 'field180567129';
const EMP_LAST_NAME_FIELD_ID = 'field180567130';
const SUPERVISOR_ID_FIELD_ID = 'field180567519';
const EMP_ID_FIELD_ID = 'field180567520';
const DEPT_NAME_FIELD_ID = 'field180567695';
try {
const response = await fetch(apiURL);
if (!response.ok) throw new Error("Error fetching employee data");
let employeeData = await response.json();
// Sort employee data
employeeData.sort((a, b) => a.empNameAndDept.localeCompare(b.empNameAndDept,
undefined, { sensitivity: 'base' }));
const dropdown = document.getElementById(DROPDOWN_FIELD_ID);
if (!dropdown) return console.error("Dropdown field not found");
// Populate dropdown
dropdown.innerHTML = "";
let defaultOption = new Option("Select an employee", "");
dropdown.add(defaultOption);
employeeData.forEach(employee => {
let option = new Option(employee.empNameAndDept, String(employee.empId));
dropdown.add(option);
});
// Change event listener
dropdown.addEventListener("change", function () {
setTimeout(() => {
const selectedEmpId = String(dropdown.value);
const selectedEmployee = employeeData.find(emp => String(emp.empId) ===
selectedEmpId);
if (selectedEmployee) {
document.getElementById(EMP_NAME_FIELD_ID).value =
selectedEmployee.empName || "";
document.getElementById(EMP_EMAIL_FIELD_ID).value =
selectedEmployee.empEmail || "";
document.getElementById(SUPERVISOR_EMAIL_FIELD_ID).value =
selectedEmployee.supervisorEmail || "";
document.getElementById(EMP_FIRST_NAME_FIELD_ID).value =
selectedEmployee.empFirstName || "";
document.getElementById(EMP_LAST_NAME_FIELD_ID).value =
selectedEmployee.empLastName || "";
document.getElementById(SUPERVISOR_ID_FIELD_ID).value =
selectedEmployee.SupervisorId || "";
document.getElementById(EMP_ID_FIELD_ID).value =
selectedEmployee.empId || "";
document.getElementById(DEPT_NAME_FIELD_ID).value =
selectedEmployee.deptName || "";
}
}, 100);
});
} catch (error) {
console.error("Error fetching or populating employee data:", error);
}
});
< /code>
Подробнее здесь: https://stackoverflow.com/questions/794 ... rsed-displ
FormStack. DDL предоставил данные через API. Когда значение выбранного JSON PARSED & отображается на экране в соответств ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему изменение выбранного значения приводит к изменению выбранного элемента на ноль в С#
Anonymous » » в форуме C# - 0 Ответы
- 61 Просмотры
-
Последнее сообщение Anonymous
-