propiedades - textarea javascript
Ctrl+Intro jQuery en TEXTAREA (8)
¿Cómo disparo algo cuando el cursor está dentro de TEXTAREA y presiono Ctrl + Enter ? Usando jQuery . Gracias
En realidad, este es el truco y funciona en todos los navegadores:
if ((event.keyCode == 10 || event.keyCode == 13) && event.ctrlKey)
enlace a js violín
Encontré respuestas de otros, ya sea incompletas o no compatibles con varios navegadores.
Este código funciona google chrome.
$(function ()
{
$(document).on("keydown", "#textareaId", function(e)
{
if ((e.keyCode == 10 || e.keyCode == 13) && e.ctrlKey)
{
alert(''ctrl+enter'');
}
});
});
Esto se puede extender a un plugin de JQuery simple pero flexible como en:
$.fn.enterKey = function (fnc, mod) {
return this.each(function () {
$(this).keypress(function (ev) {
var keycode = (ev.keyCode ? ev.keyCode : ev.which);
if ((keycode == ''13'' || keycode == ''10'') && (!mod || ev[mod + ''Key''])) {
fnc.call(this, ev);
}
})
})
}
Así
$(''textarea'').enterKey(function() {$(this).closest(''form'').submit(); }, ''ctrl'')
debe enviar un formulario cuando el usuario presiona ctrl-enter con foco en el área de texto de ese formulario.
(Gracias a https://.com/a/9964945/1017546 )
Tal vez un poco tarde para el juego, pero esto es lo que uso. También forzará el envío de la forma que es el objetivo actual del cursor.
$(document.body).keypress(function (e) {
var $el = $(e.target);
if (e.ctrlKey && e.keyCode == 10) {
$el.parents(''form'').submit();
} else if (e.ctrlKey && e.keyCode == 13) {
$el.parents(''form'').submit();
}
});
primero tienes que establecer una bandera cuando se presiona Ctrl , hazlo onkeydown. entonces debes verificar la clave de enter. Desconecte la bandera cuando vea una tecla para Ctrl .
Solución universal
Admite OS X también.
if ((e.ctrlKey || e.metaKey) && (e.keyCode == 13 || e.keyCode == 10)) {
// do something
}
Puede usar el indicador event.ctrlKey
para ver si se presiona la tecla Ctrl , algo como esto:
$(''#textareaId'').keydown(function (e) {
if (e.ctrlKey && e.keyCode == 13) {
// Ctrl-Enter pressed
}
});
Verifique el fragmento de arriba here .
$(''my_text_area'').focus(function{ set_focus_flag });
//ctrl on key down set flag
//enter on key down = check focus flag, check ctrl flag