Почему мой код не работает и как это исправить? Помогите пожалуйста
Объясните, пожалуйста, почему мой код не работает. Бьёт ошибку "Cannot have more than one Element child of a Document".
var a = document.createElement("form");
a.setAttribute("action", "thisheader.php");
var b = document.createElement("input");
b.setAttribute("hidden", 1);
b.setAttribute("value", "14");
b.setAttribute("name", "art");
var c = document.createElement("textarea");
c.setAttribute("name", "comment");
var d = document.createElement("input");
d.setAttribute("name", "name");
d.setAttribute("placeholder", "Как Вас зовут?");
a.appendChild(b);
a.appendChild(c);
a.appendChild(d);
document.appendChild(a);
Спасибо заранее!
Ответы (1 шт):
Проблема заключается в последней строке вашего кода, в которой вы пытаетесь добавить элемент a непосредственно к объекту document. В DOM (Document Object Model) документ может содержать только один корневой элемент, который обычно является элементом <html>. Поэтому вы не можете добавить форму (<form>) напрямую в document.
Вам следует прикрепить вашу форму к существующему элементу внутри тела документа (<body>). Пример правильного способа добавления элемента:
document.body.appendChild(a);
Или если вы хотите добавить форму в конкретный элемент, сначала найдите этот элемент по его идентификатору или любому другому селектору, а затем добавьте к нему форму. Например, если у вас есть элемент с идентификатором container:
var container = document.getElementById("container");
container.appendChild(a);
когда вы создаете скрытое поле формы (input с атрибутом hidden), правильный способ установить его тип - это указать type в качестве атрибута, а его значение должно быть "hidden".