ejemplos - keyup keydown keypress jquery
Jquery: cómo activar el evento click al presionar la tecla enter (9)
Necesito ejecutar un evento de clic de botón al presionar la tecla enter.
Como es en este momento el evento no está disparando.
Por favor, ayúdenme con la sintaxis si es posible.
$(document).on("click", "input[name=''butAssignProd'']", function () {
//all the action
});
este es mi intento de disparar click evento en enter.
$("#txtSearchProdAssign").keydown(function (e) {
if (e.keyCode == 13) {
$(''input[name = butAssignProd]'').click();
}
});
¿Estás tratando de imitar un clic en un botón cuando se presiona la tecla enter? Si es así, puede que necesite usar la sintaxis del trigger
.
Intenta cambiar
$(''input[name = butAssignProd]'').click();
a
$(''input[name = butAssignProd]'').trigger("click");
Si este no es el problema, intente echar un segundo vistazo a la sintaxis de captura de claves mirando las soluciones en esta publicación: jQuery Presión de evento: ¿Qué tecla se presionó?
Estabas casi allí. Esto es lo que puedes probar sin embargo.
$(function(){
$("#txtSearchProdAssign").keyup(function (e) {
if (e.which == 13) {
$(''input[name="butAssignProd"]'').trigger(''click'');
}
});
});
He usado trigger()
para ejecutar el clic y vincularlo en el evento keyup
keydown
de keydown
porque click
event se compone de dos eventos, es decir, mousedown
y mouseup
. Así que parezca lo mismo posible con keydown
y keyup
.
Aquí hay una Demo
Esto parece ser un comportamiento predeterminado ahora, por lo que es suficiente hacer:
$("#press-enter").on("click", function(){alert("You `clicked'' or ''Entered'' me!")})
Puedes probarlo en este JSFiddle
Probado en: Chrome 56.0 y Firefox (Dev Edition) 54.0a2, ambos con jQuery 2.2.x y 3.x
Otra adición a hacer:
Si está agregando dinámicamente una entrada, por ejemplo, usando append()
, debe usar la función jQuery on()
.
$(''#parent'').on(''keydown'', ''#input'', function (e) {
var key = e.which;
if(key == 13) {
alert("enter");
$(''#button'').click();
return false;
}
});
ACTUALIZAR:
Una forma aún más eficiente de hacer esto sería usar una declaración de cambio. Puede encontrarlo más limpio, también.
Margen:
<div class="my-form">
<input id="my-input" type="text">
</div>
jQuery:
$(''.my-form'').on(''keydown'', ''#my-input'', function (e) {
var key = e.which;
switch (key) {
case 13: // enter
alert(''Enter key pressed.'');
break;
default:
break;
}
});
Prueba esto
$(''#twitterSearch'').keydown(function(event){
var keyCode = (event.keyCode ? event.keyCode : event.which);
if (keyCode == 13) {
$(''#startSearch'').trigger(''click'');
}
});
Espero que te ayude
Prueba esto
<button class="click_on_enterkey" type="button" onclick="return false;">
<script>
$(''.click_on_enterkey'').on(''keyup'',function(event){
if(event.keyCode == 13){
$(this).click();
}
});
<script>
Simplemente incluya la función preventDefault () en el código,
$("#txtSearchProdAssign").keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
$(''input[name = butAssignProd]'').click();
}
});
prueba esto ...
$(''#txtSearchProdAssign'').keypress(function (e) {
var key = e.which;
if(key == 13) // the enter key code
{
$(''input[name = butAssignProd]'').click();
return false;
}
});
$(function() {
$(''input[name="butAssignProd"]'').click(function() {
alert(''Hello...!'');
});
//press enter on text area..
$(''#txtSearchProdAssign'').keypress(function(e) {
var key = e.which;
if (key == 13) // the enter key code
{
$(''input[name = butAssignProd]'').click();
return false;
}
});
});
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<textarea id="txtSearchProdAssign"></textarea>
<input type="text" name="butAssignProd" placeholder="click here">
</body>
</html>
$(''#txtSearchProdAssign'').keypress(function (e) {
if (e.which == 13) {
$(''input[name = butAssignProd]'').click();
return false;
}
});
También acabo de encontrar el envío de un formulario en ''Enter'' que cubre la mayoría de los problemas de manera integral.