Jquery: comment déclencher un événement de clic en appuyant sur la touche Entrée
J'ai besoin d'exécuter un événement de clic de bouton en appuyant sur la touche Entrée.
Tel qu'il est en ce moment, l'événement ne tire pas.
Veuillez M'aider avec la syntaxe si possible.
$(document).on("click", "input[name='butAssignProd']", function () {
//all the action
});
C'est ma tentative de déclencher l'événement click sur Entrée.
$("#txtSearchProdAssign").keydown(function (e) {
if (e.keyCode == 13) {
$('input[name = butAssignProd]').click();
}
});
9 réponses
Essayez ceci....
$('#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>
Trouver la Démo en jsbin.com
Essayez Ceci
$('#twitterSearch').keydown(function(event){
var keyCode = (event.keyCode ? event.keyCode : event.which);
if (keyCode == 13) {
$('#startSearch').trigger('click');
}
});
J'espère que cela vous aidera
$('#txtSearchProdAssign').keypress(function (e) {
if (e.which == 13) {
$('input[name = butAssignProd]').click();
return false;
}
});
Je viens également de trouver Soumettre un formulaire sur 'Enter' qui couvre la plupart des problèmes de manière exhaustive.
Tu y étais presque. Voici ce que vous pouvez essayer si.
$(function(){
$("#txtSearchProdAssign").keyup(function (e) {
if (e.which == 13) {
$('input[name="butAssignProd"]').trigger('click');
}
});
});
, j'ai utilisé trigger()
pour exécuter et cliquez sur lier sur la keyup
manifestation place de keydown
, car click
événement se compose de deux événements en fait c'est à dire mousedown
, puis mouseup
. Donc, pour ressembler aux choses mêmes que possible avec keydown
et keyup
.
Voici un Démo
Essayez-vous d'imiter un clic sur un bouton lorsque vous appuyez sur la touche Entrée? Si c'est le cas, vous devrez peut-être utiliser la syntaxe trigger
.
Essayez de changer
$('input[name = butAssignProd]').click();
À
$('input[name = butAssignProd]').trigger("click");
Si ce n'est pas le problème, essayez de regarder votre syntaxe de capture de clé en regardant les solutions dans ce post: jQuery Event Keypress: quelle touche a été pressée?
Un Autre ajout à faire:
Si vous ajoutez dynamiquement une entrée, par exemple en utilisant append()
, vous devez utiliser la fonction jQuery on()
.
$('#parent').on('keydown', '#input', function (e) {
var key = e.which;
if(key == 13) {
alert("enter");
$('#button').click();
return false;
}
});
Mise à jour:
Encore plus efficace façon de le faire serait d'utiliser une instruction switch. Vous pouvez le trouver plus propre, aussi.
Balisage:
<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;
}
});
Incluez simplement la fonction preventDefault () dans le code,
$("#txtSearchProdAssign").keydown(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
$('input[name = butAssignProd]').click();
}
});
Essayez Ceci
<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>
Cela semble être un comportement par défaut maintenant, il suffit donc de faire:
$("#press-enter").on("click", function(){alert("You `clicked' or 'Entered' me!")})
Vous pouvez l'essayer dans ce JSFiddle
Testé sur: Chrome 56.0 et Firefox (Dev Edition) 54. 0a2, tous deux avec jQuery 2.2.x et 3.x