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 ->
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.
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!
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>O verifique si todas las etiquetas de opciones están dentro de la etiqueta seleccionada...