Olvídate de generar eventos como pulsaciones de teclas. Aunque puede (de varias formas no portátiles) crear eventos y enrutarlos al sistema de manejo de eventos, esto solo provocará que se llamen las funciones apropiadas del controlador de eventos; Será no hacer que el navegador realice las acciones predeterminadas para una acción generada por el usuario como una pulsación de tecla o un clic del mouse.
En cualquier caso, el comportamiento del que está hablando al reiniciar en Escape es una peculiaridad de IE: en ningún otro navegador el escape tiene ningún efecto, e incluso en IE no es confiable. Específicamente, en una forma normal, una prensa de Escape pierde cambios desde el último foco, y dos presiones de Escape en una fila restablecen todo el formulario a los valores iniciales. Sin embargo, si el formulario tiene un <input type="reset">
en él, una sola pulsación de Escape restablece el formulario y enfoca el botón de reinicio. Esto hace que sea aún más fácil perder accidentalmente todo lo que ha escrito y es otra buena razón para no incluir un botón de reinicio en sus formularios.
Por lo tanto, si desea restablecer los valores iniciales, puede llamar al form.reset()
. Si desea restablecer solo un campo, puede configurar input.value= input.defaultValue
(o input.checked= input.defaultChecked
para casillas de verificación/radios, y de manera similar defaultSelected
en opciones).
Sin embargo, si desea que el valor que estaba presente en el momento en el campo de la última enfocada, como IE se comporta cuando no hay un botón de reinicio, que tendrá que hacer alguna variable recuerdo, por ejemplo .:
var undonevalue= $('#undoable').val();
$('#undoable').focus(function() {
undonevalue= $('#undoable').val();
});
$('#undoer').click(function() {
$('#undoable').val(undonevalue);
});
Para los futuros espectadores - hay un defecto Javascript propiedad llamada 'defaultValue'. Podría usar 'input.value = input.defaultValue' en elementos individuales. No tiene sentido guardar datos en una variable externa cuando ya está allí. – Shadow