javascript - examples - jquery methods
jQuery: Cómo capturar la pulsación de tecla TAB dentro de un cuadro de texto (7)
Ejemplo de trabajo en jQuery 1.9:
$(''body'').on(''keydown'', ''#textbox'', function(e) {
if (e.which == 9) {
e.preventDefault();
// do your code
}
});
Quiero capturar la tecla TAB, cancelar la acción predeterminada y llamar a mi propia función de JavaScript.
Prueba esto:
$(''#contra'').focusout(function (){
$(''#btnPassword'').focus();
});
Una parte importante del uso de una tecla en la pestaña de abajo es saber que la pestaña siempre intentará hacer algo, no olvides "devolver falso" al final.
Aquí esta lo que hice. Tengo una función que se ejecuta en .blur y una función que intercambia donde está mi foco de forma. Básicamente agrega una entrada al final del formulario y va allí mientras ejecuta los cálculos en el desenfoque.
$(this).children(''input[type=text]'').blur(timeEntered).keydown(function (e) {
var code = e.keyCode || e.which;
if (code == "9") {
window.tabPressed = true;
// Here is the external function you want to call, let your external
// function handle all your custom code, then return false to
// prevent the tab button from doing whatever it would naturally do.
focusShift($(this));
return false;
} else {
window.tabPressed = false;
}
// This is the code i want to execute, it might be different than yours
function focusShift(trigger) {
var focalPoint = false;
if (tabPressed == true) {
console.log($(trigger).parents("td").next("td"));
focalPoint = $(trigger).parents("td").next("td");
}
if (focalPoint) {
$(focalPoint).trigger("click");
}
}
});
Supongamos que tiene TextBox con Id txtName
$("[id*=txtName]").on(''keydown'', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
alert(''Tab Pressed'');
}
});
Editar: como su elemento está insertado dinámicamente, debe usar deleted on()
como en su ejemplo, pero debe vincularlo al evento keydown, ya que como @Marc comenta, en IE, el evento keypress no captura caracteres no característicos. llaves:
$("#parentOfTextbox").on(''keydown'', ''#textbox'', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
// call custom function here
}
});
Vea un ejemplo here .
Los métodos mostrados anteriormente no me funcionaron, puede que esté usando bit jquery viejo, y finalmente el fragmento de código que se muestra a continuación funciona para - publicar solo en caso de que alguien en mi misma posición
$(''#textBox'').live(''keydown'', function(e) {
if (e.keyCode == 9) {
e.preventDefault();
alert(''tab'');
}
});
$(''#textbox'').live(''keypress'', function(e) {
if (e.keyCode === 9) {
e.preventDefault();
// do work
}
});