Я предполагаю, что вы получаете идентификатор в этой строке:
data.id = document.getElementById("d_id").value;
Итак, этот ввод "d_id" является типом текста? Если да, вы должны изменить его на номер типа. Если вам нужно сохранить его как текстовый тип, вам необходимо преобразовать его значение в Number, прежде чем выполнять JSON Stringification.
data.id = +document.getElementById("d_id").value.trim();
Префикс + приведет вашу строку к числу, а усечение () гарантирует, что он не содержит нежелательных пробелов. Теперь вы в безопасности.
Учитывая приведенный выше пример, если ваше входное значение «неопределено» или содержит нечисловые символы, ваш идентификатор будет NaN. Если ваше входное значение равно нулю, ваш идентификатор будет 0.
Это потому, что текст типа ввода всегда возвращает строку, а типы данных имеют значение JSON. Если вы ввели строку в строку, JSON .parse () выведет строку, такую же для числа. Здесь приведена справка о JSON типах данных
Есть, конечно, другие способы приведения к Number в JS, такие как Number (), parseInt (), parseFloat (), ~ ~, >>>> 0, et c. Это хороший момент, чтобы знать о. Вот прохладное и легкое чтение о:
https://gomakethings.com/converting-strings-to-numbers-with-vanilla-javascript/