Jquery: как вызвать событие щелчка при нажатии клавиши enter

мне нужно выполнить событие нажатия кнопки при нажатии клавиши Enter.

Как это на данный момент событие не стреляют.

пожалуйста, помогите мне с синтаксисом, если это возможно.

$(document).on("click", "input[name='butAssignProd']", function () {
   //all the action
});

Это моя попытка запустить событие щелчка на enter.

$("#txtSearchProdAssign").keydown(function (e) {
  if (e.keyCode == 13) {
    $('input[name = butAssignProd]').click();
  }
});

9 ответов


попробуйте это....

$('#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>

найти демо в jsbin.com


Попробуй Такое

$('#twitterSearch').keydown(function(event){ 
    var keyCode = (event.keyCode ? event.keyCode : event.which);   
    if (keyCode == 13) {
        $('#startSearch').trigger('click');
    }
});

надеюсь, это тебе поможет


$('#txtSearchProdAssign').keypress(function (e) {
  if (e.which == 13) {
    $('input[name = butAssignProd]').click();
    return false;  
  }
});

Я тоже только что нашел Отправка формы на "Enter" который охватывает большинство вопросов всесторонне.


Вы были почти там. Вот что вы можете попробовать.

$(function(){
  $("#txtSearchProdAssign").keyup(function (e) {
    if (e.which == 13) {
      $('input[name="butAssignProd"]').trigger('click');
    }
  });
});

я использовал trigger() для выполнения нажмите и свяжите его на keyup событие insted keydown, потому что click событие состоит из двух событий на самом деле, т. е. mousedown затем mouseup. Так, чтобы походить на вещи же, как это возможно с keydown и keyup.

здесь демо


вы пытаетесь имитировать щелчок по кнопке при нажатии клавиши enter? Если это так, вам может потребоваться использовать trigger синтаксис.

попробуйте изменить

$('input[name = butAssignProd]').click();

to

$('input[name = butAssignProd]').trigger("click");

Если это не проблема, попробуйте еще раз взглянуть на свой синтаксис захвата ключей, посмотрев на решения в этом сообщении:jQuery Event Keypress: какая клавиша была нажата?


еще одно дополнение сделать:

если вы динамически добавляете ввод, например, используя append(), вы должны использовать jQuery с


просто включите функцию preventDefault () в код,

       $("#txtSearchProdAssign").keydown(function (e) {
       if (e.keyCode == 13) {
       e.preventDefault();
       $('input[name = butAssignProd]').click();
        }
        });

Попробуй Такое

<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>

теперь это поведение по умолчанию, поэтому достаточно сделать:

$("#press-enter").on("click", function(){alert("You `clicked' or 'Entered' me!")})

вы можете попробуйте в этом JSFiddle

протестировано на: Chrome 56.0 и Firefox (Dev Edition) 54.0a2, оба с jQuery 2.2.x и 3.x