es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Javascript para detener la presentación del formulario de registro de WordPress (validación de correo electrónico).

He integrado exitosamente la API de mailrefine.io con mi formulario de registro de WordPress para la validación de email. Ahora, cuando un usuario llena el formulario y hace clic en enviar, aparece un mensaje que dice “Email válido” o “Email inválido” dependiendo de los resultados de validación de email de la conexión con la API.

El problema es que, tan pronto como aparece el mensaje debajo del campo de entrada de email, el formulario se envía y redirecciona al usuario a otra página independientemente del resultado de validación.

He escrito el siguiente código javascript para verificar primero el resultado de validación de email y, si es inválido, detener el envío para que el usuario pueda ingresar una dirección de email válida.

El código es el siguiente:

document.getElementById('wp-submit').onclick = function(){
if(document.getElementById('mailrefine-msg').innerHTML == 'Email is invalid'){
window.stop();
}
}

El script de arriba no está funcionando y lo único que puedo encontrar cuando depuro el código es que podría ser necesario reemplazar el evento onclick en la línea 1 con algo más.

Gracias por su ayuda.

A continuación se muestra el código HTML de mi formulario si ayuda:

<form name="registerform" id="mailrefine-form" action="https://alliedhealthprograms.com/login/?action=register" method="post" novalidate="novalidate">
            <p>
                <label for="user-login">Username</label>
                <input type="text" name="user-login" id="user-login" class="input" value="" size="20" autocapitalize="off">
            </p>
            <p>
                <label for="user-email">Email</label>
                <input type="email" name="user-email" id="mailrefine-email" class="input" value="" size="25">
            </p>
            <input type="hidden" id="ct-checkjs-registerform-061412e4a03c02f9902576ec55ebbe77" name="ct-checkjs-registerform" value="1068643702"><script type="text/javascript">setTimeout(function(){var ct-inputname = "ct-checkjs-registerform-061412e4a03c02f9902576ec55ebbe77";if (document.getElementById(ct-inputname) !== null) {var ct-inputvalue = document.getElementById(ct-inputname).value;document.getElementById(ct-inputname).value = document.getElementById(ct-inputname).value.replace(ct-inputvalue, '1068643702');}}, 1000);</script>      <p class="loginpress-reg-pass-wrap">
        <label for="loginpress-reg-pass">Password</label>
        <input autocomplete="off" name="loginpress-reg-pass" id="loginpress-reg-pass" class="input" size="20" value="" type="password">
      </p>
      <p class="loginpress-reg-pass-2-wrap">
        <label for="loginpress-reg-pass-2">Confirm Password</label>
        <input autocomplete="off" name="loginpress-reg-pass-2" id="loginpress-reg-pass-2" class="input" size="20" value="" type="password">
      </p>
                <p id="reg-passmail">
                Registration confirmation will be emailed to you.           </p>
            <br class="clear">
            <input type="hidden" name="redirect_to" value="">
            <p class="submit">
                <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Register">
            </p>
        </form>

Nota: no se deben traducir los nombres de las variables y atributos en el código.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución para Detener la Solicitud de Envío en Correo Electrónico Inválido

    Para detener la solicitud de envío del formulario en un correo electrónico inválido, necesitas modificar el código javascript existente. El escuchador de evento onclick no es adecuado para esta situación porque se ejecuta después de que se envía el formulario. En su lugar, puedes utilizar el escuchador de evento onsubmit para prevenir el envío del formulario en un correo electrónico inválido.

    Aquí está el código javascript modificado:

    document.getElementById('mailrefine-form').addEventListener('submit', function(event){
        if(document.getElementById('mailrefine-msg').innerHTML == 'Email is invalid'){
            event.preventDefault();
        }
    });
    

    El código de arriba adjunta un escuchador de evento al evento submit del formulario. Cuando el usuario envía el formulario, la función verifica si el correo electrónico es inválido. Si lo es, llama al método event.preventDefault() el cual detiene el envío del formulario.

    Reemplaza el código javascript existente con el código de arriba, y debería prevenir la solicitud de envío en un correo electrónico inválido.

    Espero que te ayude. Déjame saber si tienes más preguntas.

Comments are closed.