2009-04-16 11 views
5

Estoy tratando de capturar la tecla Intro desde un área de texto usando javascript. El problema es que, aunque puedo descubrir que se presionó la tecla "enter", no puedo evitar que entre en el área de texto. No quiero que la tecla Intro, es decir, "\ n", se muestre en el área de texto.Clave de captura de JavaScript

¿Alguna sugerencia sobre cómo lograr eso?

Gracias.

Respuesta

6

intente configurar esta función que el evento onKeyDown para el área de texto:

ejemplo: onkeydown="javascript:return fnIgnoreEnter(event);"

function fnIgnoreEnter(thisEvent) { 
    if (thisEvent.keyCode == 13) { // enter key 
    return false; // do nothing 
    } 
} 
0

Incluso si bloquea el botón enter, aún podrían pegar en nuevas líneas. Esto evitaría el botón enter, y eliminaría cualquier nueva línea y retorno de carro que ingresara de todos modos (solo intenté esto en FF, y un pensamiento mínimo puesto en esto - podría no funcionar en Safari o IE como está).

<textarea rows="20" cols="50" onkeydown="return ignoreEnter(event);" onkeyup="noEnter(this);"></textarea> 
<script type="text/javascript"> 
function ignoreEnter(event) { 
return thisEvent.keyCode != 13; // enter key 
} 

function noEnter(e) { 
e.value = e.value.replace(/\n/g,''); 
e.value = e.value.replace(/\r/g,''); 
} 
</script> 
1

más recientes y mucho más limpio: event.key utilizar en lugar de event.keyCode. ¡No más códigos de números arbitrarios!

function onEvent(event) { 
    if (event.key === "Enter") { 
     return false; 
    } 
}; 

Mozilla Docs

Supported Browsers

Cuestiones relacionadas