Skip to content
On this page

Bootstrap Formulario

En este apartado veremos un formulario con Bootstrap 5.

⭐ Videos Premium ⭐

Esta sección es parte del curso en Udemy. Si quieres acceder a ella, puedes comprar el curso en Udemy: Bootstrap 5 by bluuweb.

O bien también puedes visualizar los videos siendo miembro en Youtube. Accede a miembros del canal aquí y accede a los videos de esta sección.

Ejemplo

html
<form id="formulario">
    <div class="mb-3">
        <label for="inputEmail">Email Address</label>
        <input
            type="email"
            class="form-control"
            id="inputEmail"
            aria-describedby="emailHelp"
            name="campoEmail"
        />
        <div class="form-text" id="emailHelp">
            No compartiremos su correo electrónico.
        </div>
    </div>
    <div class="mb-3">
        <label for="inputPassword">Password</label>
        <input
            type="password"
            id="inputPassword"
            class="form-control"
            name="campoPassword"
        />
    </div>
    <div class="mb-3 form-check">
        <input
            type="checkbox"
            id="inputCheck"
            class="form-check-input"
            name="campoAceptar"
        />
        <label for="inputCheck">Aceptar las condiciones</label>
    </div>
    <button class="btn btn-info w-100" type="submit" id="btnEnviar">
        Enviar
    </button>
    <button class="btn btn-dark w-100 d-none" disabled id="btnCargando">
        <span
            class="spinner-grow spinner-grow-sm"
            role="status"
            aria-hidden="true"
        ></span>
        Cargando...
    </button>
</form>

Javascript

js
console.log("funcionando!");

const formulario = document.querySelector("#formulario");
const btnEnviar = document.querySelector("#btnEnviar");
const btnCargando = document.querySelector("#btnCargando");

formulario.addEventListener("submit", (e) => {
    btnEnviar.classList.add("d-none");
    btnCargando.classList.remove("d-none");

    e.preventDefault();
    const datos = new FormData(formulario);
    console.log("email: ", datos.get("campoEmail"));
    console.log("password: ", datos.get("campoPassword"));
    console.log("aceptar: ", datos.get("campoAceptar"));

    // Enviar datos según sistema de backend
    // PHP: https://www.youtube.com/watch?v=nLrL9Ip3tWI

    // Simulación de carga
    window.setTimeout(() => {
        btnEnviar.classList.remove("d-none");
        btnCargando.classList.add("d-none");
    }, 1000);
});

Toast

html
<style>
    .toast {
        position: absolute;
        bottom: 0;
        margin-bottom: 20px;
        margin-left: 20px;
    }
</style>

<!-- Toasts -->
<div
    class="toast align-items-center"
    role="alert"
    aria-live="assertive"
    aria-atomic="true"
>
    <div class="d-flex">
        <div class="toast-body">
            El mensaje a sido entregado correctamente...
        </div>
        <button
            type="button"
            class="btn-close me-2 m-auto"
            data-bs-dismiss="toast"
            aria-label="Close"
        ></button>
    </div>
</div>
<!-- Toasts -->
js
console.log('funcionando!')

const formulario = document.querySelector('#formulario')
const btnEnviar = document.querySelector('#btnEnviar')
const btnCargando = document.querySelector('#btnCargando')

const toast = document.querySelector('.toast')

formulario.addEventListener('submit', e => {

    btnEnviar.classList.add('d-none')
    btnCargando.classList.remove('d-none')

    e.preventDefault()
    const datos = new FormData(formulario)
    console.log('email: ', datos.get('campoEmail'))
    console.log('password: ', datos.get('campoPassword'))
    console.log('aceptar: ', datos.get('campoAceptar'))

    // Enviar datos según sistema de backend
    // PHP: https://www.youtube.com/watch?v=nLrL9Ip3tWI

    window.setTimeout(() => {
        btnEnviar.classList.remove('d-none')
        btnCargando.classList.add('d-none')

        const eventoToast = new bootstrap.Toast(toast)
        eventoToast.show()

    }, 1000)

})