Saltar al contenido

Envíe el formulario presionando Enter con AngularJS

Basta ya de investigar por todo internet porque llegaste al sitio justo, contamos con la respuesta que deseas pero sin problema.

Solución:

Angular admite esto fuera de la caja. ¿Has probado ngSubmit en tu elemento de formulario?


EDITAR: según el comentario sobre el botón de envío, consulte Enviar un formulario presionando Intro sin un botón de envío que da la solución de:


Si no le gusta la solución del botón de envío oculto, deberá vincular una función de controlador al evento de pulsación de tecla Enter o keyup. Esto normalmente requiere una directiva personalizada, pero la biblioteca AngularUI ya tiene configurada una buena solución de pulsación de teclas. Ver http://angular-ui.github.com/

Después de agregar angularUI lib, su código sería algo como:

... input fields ...

o puede vincular la pulsación de la tecla Intro a cada campo individual.

Además, consulte estas preguntas SO para crear una directiva keypres simple: ¿Cómo puedo detectar onKeyUp en AngularJS?

EDITAR (2014-08-28): en el momento en que se escribió esta respuesta, ng-keypress/ng-keyup/ng-keydown no existía como directivas nativas en AngularJS. En los comentarios a continuación, @darlan-alves tiene una solución bastante buena con:

Si desea llamar a la función sin formulario, puede usar mi directiva ngEnter:

JavaScript:

angular.module('yourModuleName').directive('ngEnter', function() 
        return function(scope, element, attrs) 
            element.bind("keydown keypress", function(event) 
                if(event.which === 13) 
                    scope.$apply(function()
                        scope.$eval(attrs.ngEnter, 'event': event);
                    );

                    event.preventDefault();
                
            );
        ;
    );

HTML:

Presento otras directivas increíbles en mi twitter y mi cuenta Gist.

Si solo tiene una entrada, puede usar la etiqueta de formulario.

Si tiene más de una entrada, o no quiere usar la etiqueta del formulario, o quiere adjuntar la entradakey funcionalidad a un campo específico, puede alinearlo a una entrada específica de la siguiente manera:


¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *