2010-08-16 11 views
5

Tengo una página de tipo AJAX-y. Cuando el usuario hace clic en "IR", necesito ejecutar una función de JavaScript específica. También quiero simular el botón "IR" cuando un usuario pulsa "Entrar" o "Volver. Tenga en cuenta que no quiero" enviar "la página. La razón es porque estoy haciendo todo a través de JavaScript.Manejando la tecla "Enter"/"Return" en Chrome

para manejar el "Enter"/"Return" pulsación de tecla en IE y Firefox, estoy usando el siguiente código:

$(document).ready(function() { 
    $('#root').keypress(function(e) { 
    if (e.keyCode == '13') { 
     goButton(); 
    } 
    }); 
}); 

por desgracia, este código no funciona en Chrome la función goButton() es llamado.. El problema es que la página se envía. ¿Qué estoy haciendo mal?

Respuesta

6

Asumiendo que tiene una forma:

$('#theForm').submit(function(e){ 
    e.preventDefault(); 
    goButton(); 
    return false; // just to be sure. 
}); 

Es necesario para evitar que el evento se enviarían desde la forma, que se llama cuando el formulario se centrará y un usuario pulsa entrar.

3

Estoy de acuerdo con BGerrissen, ese es el mejor enfoque. Sin embargo, para una mejor adaptación a su código, puede agregar las paradas a su función actual:

$(document).ready(function() { 
    $('#root').keypress(function(e) { 
    if (e.keyCode == '13') { 
     e.preventDefault();//Stops the default action for the key pressed 
     goButton(); 
     return false;//extra caution, may not be necessary 
    } 
    }); 
}); 
Cuestiones relacionadas