Tengo un formulario y validación para ello. El problema es que no se como comprobar si los campos estan bien rellenados y luego enviar. ¿Cómo puedo enviar después de completar todos los campos correctamente?
const addBanksFunc = () => { addBankButton.addEventListener("click", (event) => { event.preventDefault(); checkInputs(); }); }; const setError = (element, message) => {...}; const setSuccess = (element) => {...}; const checkInputs = () => { if (bankName.value === "") { setError(bankName, "Some text"); } else { setSuccess(bankName); } if (interestRate.value === "") { setError(interestRate, "Some text"); } else { setSuccess(interestRate); } if (maximumLoan.value === "") { setError(maximumLoan, "Some text"); } else { setSuccess(maximumLoan); } if (minimumDownPayment.value === "") { setError(minimumDownPayment, "Some text"); } else { setSuccess(minimumDownPayment); } if (loanTerm.value === "") { setError(loanTerm, "Some text"); } else { setSuccess(loanTerm); } };Simplemente cambie su firma checkInputs , haga que devuelva verdadero (el formulario es válido) o falso.
const checkInputs = () => { if (bankName.value === "") { setError(bankName, "Some text"); return false; } else { setSuccess(bankName); } if (interestRate.value === "") { setError(interestRate, "Some text"); return false; } else { setSuccess(interestRate); } ... return true; }y
const addBanksFunc = () => { addBankButton.addEventListener("click", (event) => { event.preventDefault(); const isFormValid = checkInputs(); if (isFormValid) { // submit the form here } }); }; En realidad, no estoy muy seguro de cómo // submit the form con el botón onClick listener, probablemente sea mejor usar algo como
orderForm.on('submit', function(event) { event.preventDefault(); //some code here this.submit(); })obtenga los valores de retorno de todas las funciones de validación que está ejecutando y, si todas son verdaderas, envíe el formulario
Agregue una id o class para el formulario que desea enviar. Digamos que ha puesto un id="myForm" en el formulario que desea enviar.
Después de todas las comprobaciones, utilice el siguiente código para enviar el formulario a través del código.
document.getElementById("myForm").submit();Nota: coloque el botón Enviar fuera del formulario para evitar el envío automático sin las comprobaciones.