2016-12-23 10 views
0

У меня есть основное поле ввода. Когда страница заканчивается загрузкой, я хотел бы автоматически сфокусироваться на поле ввода, установить значение и, наконец, запустить «ввод» нажатием клавиши без запуска пользователем этих событий.Как я могу инициировать событие без взаимодействия с пользователем, используя jQuery/vanilla JavaScript?

В приведенном ниже коде первые два шага работают нормально, но ключ ввода никогда не запускается (у меня есть предупреждение, когда оно срабатывает). Может ли кто-нибудь объяснить, как это можно сделать?

$(document).ready(function() { 
    $("#myInput").focus(); 
    var e = jQuery.Event("keydown"); 
    e.which = 13; 
    $("#myInput").val("test"); 
    $("#myInput").trigger(e); 
}); 
+0

[JQuery - KeyDown/нажатие/KeyUp обнаружение ENTERKEY] (http://stackoverflow.com/questions/3462995/jquery-keydown-keypress-keyup-enterkey-detection) –

+0

Это решение относится к событию, инициируемому пользователем, я хотел бы автоматизировать это событие при загрузке страницы. –

+0

. Каким должен быть ваш конечный результат? Вы хотите, чтобы форма была отправлена, или что, потому что ваш код работает нормально. – 31piy

ответ

0

Может быть добавлено keyCode, что бы устранить вашу проблему.

$(document).ready(function() { 
     $("#myInput").focus(); 
     var e = jQuery.Event("keypress"); 
     e.which = 13; 
     e.keyCode = 13; 
     $("#myInput").val("test"); 
     $("#myInput").trigger(e); 
}); 
+0

Спасибо за ответ, этот ответ не совсем то, что я ищу. Я хочу, чтобы автоматическое нажатие клавиши нажатием клавиши, без запуска пользователем нажатия клавиши –

+0

@ Kode_12, я обновил свой ответ. Попробуйте добавить keyCode. – ScanQR

+0

Я тоже это пробовал. Все еще не запускает ключ ввода :(Можно ли даже автоматизировать событие без введения селена? –

0

Я пробовал fllowing, и это работает. Возможно, вы должны проверить обработчик события keydown и где вы его вызываете. Если вы переместите обработчик события keydown внизу после функции триггера, он не будет работать.

$(document).ready(function() { 
 

 
      var e = jQuery.Event('keydown', { 
 
       which: 50 
 
      }); 
 
      
 
      $('input').keydown(function() { 
 
       alert("triggered!"); 
 
      }); 
 

 
      $('input').trigger(e); 
 

 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<input type="button" value="button">