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
Intentando mostrar la cantidad exacta de días cuando se selecciona un mes específico

Estaba tratando de crear un formulario para seleccionar el mes y el día. Quiero agregar dinámicamente la cantidad exacta de días cuando se selecciona un mes específico. Pero solo los meses de enero, febrero y abril se pueden seleccionar después de ejecutar la declaración de cambio. ¿Puede alguien por favor ayudarme?

html:

 <select id="months" name="months"> <option value='31'> January </option> <option value='28'> February </option> <option value='31'> March </option> <option value='30'> April </option> <option value='31'> May </option> <option value='30'> June </option> <option value='31'> July </option> <option value='31'> August </option> <option value='30'> September </option> <option value='31'> October </option> <option value='30'> November </option> <option value='31'> December </option> </select> <select id="days" name="days"></select>

js:

 const $months = document.getElementById('months') function dayOfMonthOne() { for (let i = 1; i < 32; i++) { const days = ` <option>${i}</option> ` const $days = document.getElementById('days') $days.innerHTML = $days.innerHTML + days } } function dayOfMonthZero() { for (let i = 1; i < 31; i++) { const days = ` <option>${i}</option> ` const $days = document.getElementById('days') $days.innerHTML = $days.innerHTML + days } } function dayOfMonthTwo() { for (let i = 1; i < 29; i++) { const days = ` <option>${i}</option> ` const $days = document.getElementById('days') $days.innerHTML = $days.innerHTML + days } } $months.addEventListener('change', function(){ switch ($months.value) { case '31': $months.value = '31' dayOfMonthOne() break case '30': $months.value = '30' dayOfMonthZero() break case '28': $months.value = '28' dayOfMonthTwo() break } })
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Es porque está configurando $month.value en la declaración de cambio. Dado que hay valores duplicados, se seleccionará la primera coincidencia. En los casos anteriores, el primer valor para 31 es enero, 28 para febrero y 30 para abril.

Además, en su código, solo está concatenando las opciones. Entonces, cuando cambia de un mes a otro, las opciones del mes anterior no se reemplazan.

También podría usar solo una función para esto obteniendo el valor del mes y configurándolo como i < monthLengthInDays .

Otra cosa que puede intentar es obtener la cantidad de días a través del objeto Fecha .

 new Date(year, monthOneBasedIndex, 0).getDate();

Esto devolverá el último día del mes.

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!