Deshabilitar intro enter en formulario sin afectar textarea

Ya vimos en unos artículos cómo deshabilitar intro / enter en un formulario, para que no se enviara el formulario en el caso de pulsar dicha tecla. En este artículo veremos cómo deshabilitar la tecla intro enter en un formulario sin afectar a los textarea

Como ya hemos comentado, hicimos un par de artículos hablando del tema:

Pero nos encotramos con un problem grave: dentro de los textareas del formulario, no podríamos utilizar la tecla enter. Como hemos dicho, la deshabilitamos en el formulario. Cada vez que intentemos pulsar enter para saltar linea dentro del textarea, éste no funcionará.

Cómo podemos evitar que se utilice la tecla Enter en el formulario, pero que respete los textarea y en éstos si que nos lo permita.

Deshabilitar tecla Enter en formulario

<form action="envio.php" method="post" id="miformulario" onKeyPress="if(event.keyCode == 13) event.returnValue = false;">

Si os fijáis, capturamos el evento en el formulario, en el caso que se pulse el Enter. Veamos cómo decirle que se permita en los textareas.

Deshabilitar tecla Enter en formulario exceptuando para textareas

<form action="envio.php" method="post" id="miformulario" onKeyPress="if(event.keyCode == 13 && node.type != 'TEXTAREA' ) event.returnValue = false;">

Hemos añadido a la captura del evento onKeyPress un poco más de código. Más concretamente, vigilamos que se pulsa la tecla 13 que es el Enter, pero además, miramos si donde se pulsa es de tipo Textarea. Si es la tecla 13 y no es un textarea, no se ejecuta nada (por lo tanto no corremos el peligro de que se envíe formulario).

En cambio, si es un textarea, permite la Tecla Intro, pero no se envía el formulario, añade una línea más a dicho textarea.

Espero que os sea de utilidad el artículo donde hemos visto cómo deshabilitar la tecla intro enter en un formulario sin afectar a los textarea.


Más información