Atenção!

Este artigo contém código JavaScript e destina-se a programadores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação adicional, consulte o tutorial da WPBeginner sobre como adicionar código personalizado.

Ignorar

Como impedir que a tecla Enter envie o formulário

Gostaria de impedir que a tecla Enter submeta os seus formulários? Existem muitos debates sobre se deve ou não desativar esta tecla, mas se fez a sua pesquisa e determinou que é melhor para o seu site desativar esta tecla, este artigo irá fornecer-lhe o código necessário para desativar a tecla Enter nos seus formulários.

Desativar a tecla enter

Para desativar esta tecla nos seus formulários, que incluem o botão de submissão, os botões de página seguinte/anterior, bem como a utilização da tecla enter para navegar pelos campos do formulário, basta copiar este código e adicioná-lo ao seu site.

Se precisar de ajuda sobre como e onde adicionar snippets ao seu site, por favor, veja este tutorial.

Por favor, note que este código não funcionará para Formulários Conversacionais.

Precisamos de colocar o número numérico que representa a tecla Enter num teclado padrão. já sabemos que esta é representada pelo número 13 se quiser saber mais sobre estes números e o que eles representam, dê uma vista de olhos nesta documentação.

Para um formulário WPForms específico

/**
 * Disable the Enter key on a specific form 
 *
 * @link https://wpforms.com/developers/how-to-stop-the-enter-key-from-submitting-the-form/
 */

function wpf_dev_disable_enter_specific_form( ) {
?>

    <script type="text/javascript">
        
        // Only run this snippet on the form ID 721
        jQuery( 'form#wpforms-form-721' ).bind( 'keypress keydown keyup', function(e) {
            if (e.keyCode == 13) {
                e.preventDefault();
            }
        });
        
    </script>

<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_disable_enter_specific_form', 30 );

O código acima está a visar especificamente o ID do formulário wpforms-form-721. Terá de alterar este código para corresponder ao seu próprio ID de formulário.

Se precisar de ajuda sobre onde encontrar o seu ID de formulário, por favor, reveja este tutorial.

Para todos os formulários WPForms

No entanto, se desejar adicionar isto para todos os formulários WPForms, utilize o código mostrado abaixo.

/**
 * Disable the Enter key WPForms forms
 *
 * @link https://wpforms.com/developers/how-to-stop-the-enter-key-from-submitting-the-form/
 */

function wpf_dev_disable_enter_all_wpforms( ) {
?>

    <script type="text/javascript">
        
        // Run this snippet on all WPForms forms
        jQuery( 'form.wpforms-form' ).bind( 'keypress keydown keyup', function(e) {
            if (e.keyCode == 13) {
                e.preventDefault();
            }
        });
        
    </script>

<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_disable_enter_all_wpforms', 30 );

E é tudo o que precisa para desativar esta tecla. Gostaria também de alterar a cor do botão Submeter? Dê uma vista de olhos no nosso tutorial sobre Como Alterar a Cor do Botão de Submissão.

Ação de Referência

wpforms_wp_footer_end

FAQ

P: Como posso desativar o botão Seguinte ao usar Quebras de Página?

R: Para desativar os botões Seguinte e Anterior ao usar o campo WPForms Page Break, use este snippet.

/**
 * Disable the enter key from going to the next page of a multi page form
 *
 * @link https://wpforms.com/developers/how-to-stop-the-enter-key-from-submitting-the-form/
 */

function wpf_dev_stop_enter_submit_pagination( ) {
 ?>

<script type="text/javascript">
    jQuery(document)
        .off('keydown', '.wpforms-form input')
        .on('keydown', '.wpforms-form input', function(e) {
            if (e.keyCode === 13) {
                e.preventDefault();
                e.stopPropagation();
            }
        });
</script>

<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_stop_enter_submit_pagination', 30 );

P: E se eu quiser desativar a tecla Enter em todos os formulários do meu site?

R: Este snippet desativaria a tecla independentemente de ser um formulário WPForms ou o formulário de comentários do WordPress.

/**
 * Disable the enter key from submitting the form for all forms on this WordPress site
 *
 * @link https://wpforms.com/developers/how-to-stop-the-enter-key-from-submitting-the-form/
 */

function wpf_dev_disable_enter_key_any_form( ) {
?>

    <script type="text/javascript">
        
        // Run this snippet on all WPForms forms
        jQuery( 'form' ).bind( 'keypress keydown keyup', function(e) {
            if (e.keyCode == 13) {
                e.preventDefault();
            }
        });
        
    </script>

<?php
}
add_action( 'wp_footer', 'wpf_dev_disable_enter_key_any_form', 30 );

P: Posso desativar as teclas Espaço e Enter para submeter o formulário?

R: Absolutamente! Use apenas este snippet em vez disso.

/**
 * Disable the Enter and Space key on all WPForms forms
 *
 * @link https://wpforms.com/developers/how-to-stop-the-enter-key-from-submitting-the-form/
 */
 
function wpf_dev_disable_enter_space_keys_all_wpforms( ) {
?>
 
    <script type="text/javascript">
         
        // Run this snippet on all WPForms forms
        jQuery( 'form.wpforms-form' ).bind( 'keypress keydown keyup', function(e) {
			// 13 is to prevent the Enter key from submitting the form
			// 32 is to prevent the Space bar from submitting the form
            if ( e.keyCode == 13 || e.which == 13 || e.which == 32 ) {
				e.preventDefault();
				return false;
			}
        });
         
    </script>
 
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_disable_enter_space_keys_all_wpforms', 30 );