Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

101
Views
Genere una cantidad de bloques de acuerdo con un valor de entrada HTML usando JQuery

Quiero generar una cantidad de bloques usando JQuery. Intento este código:

 $(function() { var input = $('<select name="contracts" id="contracts">\ <option value="default">-- Choose --</option>\ <option value="service">service</option>\ <option value="supply">supply</option>\ <option value="work">work</option>\ </select>\ <div>\ <label>start date</label>\ <input type="date" name="sdate" id="sdate">\ </div>\ <div>\ <label>end date</label>\ <input type="date" name="edate" id="edate">\ </div>'); var newFields = $(''); $('#nbr').bind('blur keyup change', function() { var n = this.value; if (n+1) { if (n > newFields.length) { addFields(n); } else { removeFields(n); } } }); function addFields(n) { for (i = newFields.length; i < n; i++) { var newInput = input.clone(); newFields = newFields.add(newInput); newInput.appendTo('#myForm'); } } function removeFields(n) { var removeField = newFields.slice(n).remove(); newFields = newFields.not(removeField); } });

Pero no funciona correctamente. Este es mi código HTML:

 <label>Number Of Contracts</label> <input type="number" name="nbr" id="nbr"> <form method="post"> <div id="myForm"></div> <input type="submit" name="submit" value="Submit"> </form>

Primero, muestra la cantidad de divs que quiero, pero cuando hago clic en cualquier lugar, aparece la imagen de abajo , esta es la imagen .

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

pruebe el siguiente, agregué un contenedor div y en la variable de entrada y agregué un parseInt porque n se evalúa como una cadena.

 $(function() { var input = $('<div><select name="contracts" id="contracts">\ <option value="default">-- Choose --</option>\ <option value="service">service</option>\ <option value="supply">supply</option>\ <option value="work">work</option>\ </select>\ <div>\ <label>start date</label>\ <input type="date" name="sdate" id="sdate">\ </div>\ <div>\ <label>end date</label>\ <input type="date" name="edate" id="edate">\ </div></div>'); var newFields = $(''); $('#nbr').bind('blur keyup change', function() { var n = parseInt(this.value); if(isNaN(n)) { n = 0; } if (n > newFields.length) { addFields(n); } else { removeFields(n); } }); function addFields(n) { for (i = newFields.length; i < n; i++) { var newInput = input.clone(); newFields = newFields.add(newInput); newInput.appendTo('#myForm'); } } function removeFields(n) { var removeField = newFields.slice(n).remove(); newFields = newFields.not(removeField); } });
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!