En primer lugar: estoy usando Webflow, por lo que el problema puede estar relacionado con Webflow de alguna manera.
En segundo lugar, todavía estoy aprendiendo a codificar, así que tenga en cuenta que todavía soy un novato.
Estoy usando dos formularios iguales (diferentes clases ya que, bueno, son dos elementos separados) en un sitio porque uno es estático y otro está ubicado en CMS (Lista de colecciones).
La cuestión es que trabajaron juntos antes, pero yo hice algo y... bueno, ya sabes, traté de desacreditar lo que sucedió, pero no encontré una solución adecuada.
Por alguna razón muy, muy extraña, sólo funciona el último, por ejemplo, si el botón-cms-formulario de trabajos es el primero, entonces no funcionará, pero el botón-formulario de trabajos sí lo hará. Y viceversa.
function checkform() { const formElements = document.forms["wf-form-jobs"].elements; let submitBtnActive = true; for (let inputEl = 0; inputEl < formElements.length; inputEl++) { if (formElements[inputEl].value.length == 0) submitBtnActive = false; } if (submitBtnActive) { document.getElementById("jobs-form-button").disabled = false; } else { document.getElementById("jobs-form-button").disabled = "disabled"; } }; function checkform() { const formElementsCMS = document.forms["wf-form-cms-jobs"].elements; let submitBtnActiveCMS = true; for (let inputEl = 0; inputEl < formElementsCMS.length; inputEl++) { if (formElementsCMS[inputEl].value.length == 0) submitBtnActiveCMS = false; } if (submitBtnActiveCMS) { document.getElementById("jobs-form-cms-button").disabled = false; } else { document.getElementById("jobs-form-cms-button").disabled = "disabled"; } };Cambié el nombre de algunas vars y const porque no funcionaba de otra manera. Además, hice algunas cosas para que este código funcionara con Webflow, ya que no podía agregar algunos atributos a los elementos nativos de Webflow, por ejemplo, "Botón de formulario" (el atributo "deshabilitado" estaba reservado para el sistema), así que agregué los formularios por mí mismo a través del elemento de código personalizado.
Ambas funciones tienen exactamente el mismo nombre, en JavaScript cuando ambas funciones tienen el mismo nombre, la segunda función anulará la primera función.