Я получаю следующую ошибку «Не удалось выполнить« insertBefore »на« Узле »» - PullRequest
1 голос
/ 04 октября 2019

Я пытаюсь создать программу, которая клонирует форму, основываясь на числе, которое пользователь вводит в поле, так как я новичок в javascript, сначала я пытался заставить его работать с

, и я смогчтобы сделать это.

Но, к моему удивлению, как только я добавил вложенную форму (form2) внутри другой формы, мой код перестал работать = /.

Я уже пробовалдобавление в форму различных элементов (DIV, Lists и т. д.), и все, кажется, работает.

Есть ли ошибка, которую я не вижу?

Пожалуйста, помогите

HTMLкод, который работает должным образом:

<html>
   <head>
     <title></title>
   </head>
   <body bgcolor= #30CF9A>
     <form id="form1">
       <input type="text" id="input1">
       <input type="text" id="input2">
       <p id="p1">Hello</p>
       <p id="p2">joya</p>
       <button type="button" id="sosboton">boton</button>
     </form>
     <script src="test.js"></script>
   </body>

HTML-код, который не работает:

<html>
   <head>
     <title></title>
   </head>
   <body bgcolor= #30CF9A>
     <form id="form1">
       <input type="text" id="input1">
       <input type="text" id="input2">
       <p id="p1">Hello</p>
       <p id="p2">joya</p>
       <form id="form2">
         <p>HOLA!</p>
       </form>
       <button type="button" id="sosboton">boton</button>
     </form>
     <script src="test.js"></script>
   </body>

Код JavaScript:

var inp = document.getElementById('input1');
inp.onchange = function () {cambio()};

function cambio(){
  var $x = inp.value
  for (let y = 0; y < $x; y++) {
    let $form = document.getElementById('form1');
    let $p2 = document.getElementById('p2');
    let $cln = $p2.cloneNode(true);
    $cln.id = (`autogen${y}`);
    $form.insertBefore($cln, sosboton);
  }
}

1 Ответ

0 голосов
/ 08 октября 2019

Это была проблема с HTML, которая не позволяла вкладывать формы.

В итоге я использовал DIV внутри исходной формы и продублировал этот DIV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...