Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

254
Vistas
Using loop to generate user defined form but elements vanish at end of loop

I am using the following code to generate a user-defined number of text inputs via a loop.

The generated inputs vanish after being generated in the loop - I am not sure why? I suspect I am missing something very simple?

The next step for the program will be to take the user input from the generated text inputs and put them into an array of arrays if that's in any way relevant?

function Player_Entry(){

    Loop_End = document.getElementById('Select_Number_Of_Players').value;   
    
    for (Loop_Count = 0; Loop_Count < Loop_End; Loop_Count++) {
        
        Variable_Name = "Player_Name_" + Loop_Count + 1
        Variable_Number = "Player_Number_" + Loop_Count + 1
        console.log("Created, Variable Number: " + Variable_Name);
        console.log("Created, Variable Name: " + Variable_Number);
        
        var Variable_Name = document.createElement("input");
        Variable_Name.type = "text";
        Variable_Name.value = "";
        document.getElementById('Generated_Form').appendChild(Variable_Name);
        
    }
    
}
<form onsubmit="Player_Entry()">

 
    <label for="Number_Of_Players">Number of players</label>
    <input type="number" id="Select_Number_Of_Players" value="1" name="Number_Of_Players" min=1 max =12><input type ="submit">
    
</form>

<br>Enter Player Names<br>

<form id="Generated_Form"></form>

Any help, particularly pointing out obvious rookie errors, gratefully recieved.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

It's because the input's type is set to submit, which causes the form to be submitted when it is clicked.

You can stop the form from submitting by adding return false in the onsubmit handler:

function Player_Entry() {

  Loop_End = document.getElementById('Select_Number_Of_Players').value;

  for (Loop_Count = 0; Loop_Count < Loop_End; Loop_Count++) {

    Variable_Name = "Player_Name_" + Loop_Count + 1
    Variable_Number = "Player_Number_" + Loop_Count + 1
    console.log("Created, Variable Number: " + Variable_Name);
    console.log("Created, Variable Name: " + Variable_Number);

    var Variable_Name = document.createElement("input");
    Variable_Name.type = "text";
    Variable_Name.value = "";
    document.getElementById('Generated_Form').appendChild(Variable_Name);

  }

}
<form onsubmit="Player_Entry(); return false">


  <label for="Number_Of_Players">Number of players</label>
  <input type="number" id="Select_Number_Of_Players" value="1" name="Number_Of_Players" min=1 max=12/> <input type="submit" />

</form>

<br>Enter Player Names<br>

<form id="Generated_Form"></form>

about 4 years ago · Juan Pablo Isaza Denunciar

0

either change the submit button to a button or preventDefault() to stop the submission of the form

function Player_Entry(){
event.preventDefault();

    Loop_End = document.getElementById('Select_Number_Of_Players').value;   
    
    for (Loop_Count = 0; Loop_Count < Loop_End; Loop_Count++) {
        
        Variable_Name = "Player_Name_" + Loop_Count + 1
        Variable_Number = "Player_Number_" + Loop_Count + 1
        console.log("Created, Variable Number: " + Variable_Name);
        console.log("Created, Variable Name: " + Variable_Number);
        
        var Variable_Name = document.createElement("input");
        Variable_Name.type = "text";
        Variable_Name.value = "";
        document.getElementById('Generated_Form').appendChild(Variable_Name);
        
    }
    
}
<form onsubmit="Player_Entry()">

 
    <label for="Number_Of_Players">Number of players</label>
    <input type="number" id="Select_Number_Of_Players" value="1" name="Number_Of_Players" min=1 max =12><input type ="submit">
    
</form>

<br>Enter Player Names<br>

<form id="Generated_Form"></form>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda