2009-08-05 9 views
12

Solo quiero deshabilitar Introducir la clave en el teclado. La siguiente secuencia de comandos bloquea todo el teclado por algún motivo, excepto por permitir solo la Introducir la clave que se utilizará.Desactivar el teclado <enter> clave

Si esto ayuda a identificar lo que falta o lo que está mal, estoy usando V.S. 2005, VB.NET 2.0 e I.E. 7.

<meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

<head> 
    <meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

    <script language="JavaScript"> 
    function TriggeredKey(e) 
    { 
     var keycode; 
     if (window.event) keycode = window.event.keyCode; 
     if (window.event.keyCode = 13) return false; 
    } 
    </script> 
</head> 
<body onkeydown="TriggeredKey(this)"> 
+0

respuesta podría ser alrededor de la misma, pero la pregunta no es duplicar. – Light93

Respuesta

39

Si tiene jQuery, intente esto:

$('html').bind('keypress', function(e) 
{ 
    if(e.keyCode == 13) 
    { 
     return false; 
    } 
}); 
+0

O puede corregir su código con la respuesta de Jason. Solo prefiero jQuery. –

+0

Gracias por la opción alternativa. – Cameron

+0

Prefiero esta respuesta y me gusta el hecho de que puede reemplazar 'html' con un selector más específico para habilitar la desactivación más específica de la tecla Intro (o cualquier otra tecla para ese asunto). –

20

Su = probablemente debería ser un == (comparación frente a la asignación)

if (window.event.keyCode == 13) return false; 
+0

¡Buena captura, me la perdí! –

+0

He intentado esto también y el botón enter todavía no está deshabilitado, aunque el resto del teclado se puede usar, mientras que la mayoría de las teclas se bloquearon antes. ¿Podría haber una configuración de red desconocida que esté creando esta incompatibilidad? No estoy familiarizado con JavaScript, pero parece que debería ser simple y directo. – Cameron

+2

@Cameron: disculpa que esto se haya retrasado un par de años ... debe incluir una declaración de devolución cuando especifique que su controlador de eventos devuelva el valor devuelto al sistema de eventos: –

2

He utilizado este código exitosamente.

function handleKeypress(e){ 

    e = e || window.event ; 
    if (e == null){ 
     return false; 
    } 

    if (e.keycode == 13){ 
     CompleteEvent(e); 
    } 
} 

function CompleteEvent(e){ 
    e.cancelBubble = true; 
    e.returnValue = false; 
} 

También recomiendo usar la nueva forma de configuración de enlace para javascript.

function setKeyHook() 
{  
    var eventName = 'onkeydown'; 
    var handlerFunc = handleKeypress; 


    body.detachEvent(eventName, handlerFunc);    

    body.attachEvent(eventName, handlerFunc); 

} 

onload = setKeyHook; 

Buena suerte.

Consulte this question para obtener más información de la que desea. Felicitaciones a Peter Bailey por enseñarme.

+0

Aunque tampoco pude conseguir que esto funcione todavía, ¿falta una {etiqueta? Gracias por el código! Seguiré jugando con esto. Parece como si algo más en mi código o entorno no funcionara bien. – Cameron

+0

Sí, hubo. Lo arreglé ahora. Lo siento por eso. –

+0

En la segunda parte, me parece gracioso que para evitar escribir 'document.onkeydown = handler' termine escribiendo' window.onload = handler'! (sabes que 'onload =' realmente significa 'this.onload =' y 'this', aquí está el objeto' window'). Aparte de esto, gracias por el código. – FrancescoMM

0

Esto funcionó para mí. guión

<meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

<head> 
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

<script language="JavaScript"> 
function TriggeredKey(e) 
{ 
    var keycode; 
    if (window.event) keycode = window.event.keyCode; 
    if (window.event.keyCode != 13) return false; 
} 
</script> 
</head> 
<body onkeydown="TriggeredKey(this)"> 
+1

Ahora lo invierte, el error en realidad fue que = debería haber sido == – GroundZero

+0

@GroundZero. Le agradezco la corrección de mi error y su aclaración de JavaScript. Mi error se debió a una suposición errónea de que todos los comandos en la línea de la línea 'return false' estaban adjuntos.La forma en que probé el código fue cambiando 'return false;' con 'return false; alerta ("!"); '. Sin embargo, el comando adicional aparentemente se consideró como una declaración Else. –

0
<script type="text/javascript"> 

function stopRKey(evt) { 
    var evt = (evt) ? evt : ((event) ? event : null); 
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
    if ((evt.keyCode == 13) && (node.type=="text")) {return false;} 
} 

document.onkeypress = stopRKey; 

</script> 

complemento entre

Cuestiones relacionadas