Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

165
Visualizações
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 } })
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

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.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda