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

90
Views
rellenar seleccionar en la carga de la página

Lo tengo funcionando para el primer elemento, pero tan pronto como trato de presionar otro elemento, se vuelve a llenar y selecciona el primer elemento.

HTML:

 <select id="line" name="line"> <option selected="selected" disabled="true">Auswahl...</option> </select>

Población:

 $(document).ready(function(){ var lineselects = document.getElementsByName("line"); lineselects.forEach($line => $line.addEventListener('click', popLines)); }); function popLines(){ fetch('ajax0.php',{method:'post'}) .then( r=>r.json() ) .then( json=>{ line.innerHTML=''; Object.keys( json ).forEach( key=>{ let obj=json[ key ]; line.append( new Option( obj.line, obj.line ) ); }) }) };

Información necesaria: necesito agregar EventListener a cada elemento de NodeList, ya que cada elemento es una selección que debe completarse. ¿Debería dividir las poblaciones o también está bien?

¿Cómo evito que vuelva a llenar la selección?

EDITAR: para cualquier persona que tropiece con esta respuesta, no use EventListener en cada elemento de NodeList, use document.ready para cada selección que desee completar por separado -> si presiona cualquier otro elemento de NodeList, solo el primero se llenará.

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

0

Estás vaciando el elemento line <select> vacío con cada fetch , pero parece que quieres vaciarlo solo por primera vez, la mejor manera que se me ocurre es usar algún tipo de bandera para que sepas que es la primera tiempo.

 $(document).ready(function(){ var lineselects = document.getElementsByName("line"); lineselects.forEach($line => $line.addEventListener('click', popLines)); }); function popLines(){ fetch('ajax0.php',{method:'post'}) .then( r=>r.json() ) .then( json=>{ if ( $( '#line' ).data('first-time') != 'no' ) { line.innerHTML=''; $( '#line' ).data('first-time', 'no'); } Object.keys( json ).forEach( key=>{ let obj=json[ key ]; line.append( new Option( obj.line, obj.line ) ); }) }) };
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!