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

249
Views
la entrada de fecha de nacimiento no funciona después del número 13 con javascript

Estamos haciendo pruebas AB. Solo podemos tocar el código del lado del cliente con Google Optimize. Entonces, el diseñador nos pidió que cambiáramos el formato de la fecha de nacimiento de una entrada separada a una entrada unificada como esta ->

ingrese la descripción de la imagen aquí

Entonces, la idea es que el usuario escriba los números de la fecha de nacimiento [13.07.1998] y luego la información llegará a la entrada separada como esta [13] [July] [1998]

Funciona bien hasta que usamos el día 13. Después de ese número, el código no funciona. Pero si uso 12 funciona.

ingrese la descripción de la imagen aquí

 const dobInput = document.querySelector("input"); const birthDay = document.querySelector("#birthDay"); const birthMonth = document.querySelector("#birthMonth"); const birthYear = document.querySelector("#birthYear"); dobInput.addEventListener("change", (e) => { const dobString = e.target.value; if ( isValidDate(dobString) ) { let date = dobString.slice(0, 2); let month = dobString.slice(3, 5); let year = dobString.slice(6, 10); birthDay.value = date; birthMonth.value = month; birthYear.value = year; } else { const errorMessage = document.querySelector(".cro-error-text"); errorMessage.classList.add('error'); } }); function isValidDate(dateString) { // First check for the pattern if (!/^\d{1,2}\.\d{1,2}\.\d{4}$/.test(dateString)) return false; // Parse the date parts to integers var parts = dateString.split("."); var day = parseInt(parts[1], 10); var month = parseInt(parts[0], 10); var year = parseInt(parts[2], 10); // Check the ranges of month and year if (year < 1905 || year > 2004 || month == 0 || month > 12) return false; var monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // Adjust for leap years if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) monthLength[1] = 29; // Check the range of the day return day > 0 && day <= monthLength[month - 1]; }

¿Alguien sabe por qué puede estar pasando? ¡Gracias!

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

0

Creo que el error es este....

si-----------------------------------------

12 - - - 10 - - - 2000

Día mes año

en tu código estás guardando

12 - - - - 10 - - - 2000

Mes día año



Creo que el error es este porque creo que está usando la etiqueta de selección.

las etiquetas seleccionadas tienen una etiqueta de opciones... y cada etiqueta de opción tiene un valor.

 <select> <option value=1>Jenuary</option> <option value=2>February</option> </select>

Entonces _select.value=13 no es posible porque no debería haber un

 <option value=13>

No hay un mes 13... Creo que estás confundiendo el mes con el día cuando lo almacenas en la variable


O verifique si todas las etiquetas de opciones están dentro de la etiqueta seleccionada...

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!