Keyboard hadisələrini jQuery ilə tetiklemek üçün son yol

Bu suallara cavabların hamısını oxudum və həllərin heç biri işə yaramır.

Həmçinin, mən xüsusi bir simvolu olan bir tuş vuruşunu başlayan bir vibe ala bilmirəm. Kim bunu kimin etdiyini yoxlaya bilirmi?

219
07 мая '09 в 1:15 2009-05-07 01:15 07 may 09 : 00-da mqoryak tərəfindən 1:15 2009-05-07 01:15 ilə təyin olundu
@ 10 cavab

Bir tuş vuruşunu və ya keydown tətil etmək istəyirsinizsə, sonra bütün etmək lazımdır:

 var e = jQuery.Event("keydown"); e.which = 50; // # Some key code value $("input").trigger(e); 
314
07 мая '09 в 1:31 2009-05-07 01:31 Cavab Nadia Alramli tərəfindən 07 may 09: 00-da 1: 31-da verilmişdir. 2009-05-07 01:31

İndi jQuery 1.6 + ilə bir az daha qısa:

 var e = jQuery.Event( 'keydown', { which: $.ui.keyCode.ENTER } ); $('input').trigger(e); 
border=0

(Əgər jQuery UI istifadə etmirsinizsə, bunun yerine müvafiq əsas kodu daxil edin.)

72
28 окт. Cavab 28 oct verilir . 2011-10-28 05:23 '11 saat 05:23 'da 2011-10-28 05:23

Həqiqi cavab keyCode daxil olmalıdır:

 var e = jQuery.Event("keydown"); e.which = 50; // # Some key code value e.keyCode = 50 $("input").trigger(e); 

JQuery veb saytında və keyCode normallaşdıqlarına baxmayaraq, onlar çox səhvdirlər. E.which və e.keyCode üçün standart cross-brauzer çekləri yerinə yetirmək həmişə təhlükəsizdir və bu halda hər ikisini müəyyən etmək asandır.

59
01 янв. cavab Tomas 01 jan verildi . 2012-01-01 11:02 '12 at 11:02 2012-01-01 11:02

JQuery istifadəçi interfeysi istifadə edirsinizsə, aşağıdakıları edə bilərsiniz:

 var e = jQuery.Event("keypress"); e.keyCode = $.ui.keyCode.ENTER; $("input").trigger(e); 
16
30 июля '10 в 11:20 2010-07-30 11:20 Rodrigo Chacon'a 30 iyul '10 'da 11:20' də cavab verdi 2010-07-30 11:20

Bəli, mənim üçün bu işləyir ...

 var e2key = function(e) { if (!e) return ''; var event2key = { '96':'0', '97':'1', '98':'2', '99':'3', '100':'4', '101':'5', '102':'6', '103':'7', '104':'8', '105':'9', // Chiffres clavier num '48':'m0', '49':'m1', '50':'m2', '51':'m3', '52':'m4', '53':'m5', '54':'m6', '55':'m7', '56':'m8', '57':'m9', // Chiffres caracteres speciaux '65':'a', '66':'b', '67':'c', '68':'d', '69':'e', '70':'f', '71':'g', '72':'h', '73':'i', '74':'j', '75':'k', '76':'l', '77':'m', '78':'n', '79':'o', '80':'p', '81':'q', '82':'r', '83':'s', '84':'t', '85':'u', '86':'v', '87':'w', '88':'x', '89':'y', '90':'z', // Alphabet '37':'left', '39':'right', '38':'up', '40':'down', '13':'enter', '27':'esc', '32':'space', '107':'+', '109':'-', '33':'pageUp', '34':'pageDown' // KEYCODES }; return event2key[(e.which || e.keyCode)]; }; var page5Key = function(e, customKey) { if (e) e.preventDefault(); switch(e2key(customKey || e)) { case 'left':  break; case 'right':  break; } }; $(document).bind('keyup', page5Key); $(document).trigger('keyup', [{preventDefault:function(){},keyCode:37}]); 
3
15 дек. Cavab molokoloco verilir 15 dekabr. 2010-12-15 20:11 '10 at 20:11 2010-12-15 20:11

həm də aşağıdakı kimi icra edilə bilər ( sənədlər )

 $('input').trigger("keydown", {which: 50}); 
2
02 янв. Cavab Bek 02 jan verilir . 2016-01-02 10:53 '16 saat 10:53 'da 2016-01-02 10:53

console.log( String.fromCharCode(event.charCode) );

Bilmirəm xarakterə ehtiyac yoxdur.

1
27 апр. Weldan Jamili tərəfindən verilmiş cavab 27 apreldə 2013-04-27 02:41 '13 at 2:41 2013-04-27 02:41

Mövcud imleci və mətn seçimini nəzərdən keçirmək istəyirsinizsə ...

Bu Chrome üçün AngularJS app üçün mənim üçün çalışmadı. Nadia orijinal şərhlərdə qeyd etdiyimiz kimi, xarakter heç bir zaman giriş sahəsində görünmür (ən azı mənim təcrübə idi). Bundan əlavə, əvvəlki qərarlar giriş sahəsindəki mövcud mətn seçimini nəzərə almır. Böyük jquery seçmə kitabxanasından istifadə etməliyəm.

Bir neçə giriş sahəsini dolduran xüsusi bir ekran nömrəsi var. Mən ...

  • Fokus rejimində, lastFocus.element qeyd edin
  • Bulanıklıq mövcud mətni (başlanğıc və dayandırmaq)

     var pos = element.selection('getPos') lastFocus.pos = { start: pos.start, end: pos.end} 
  • Klavyəmizdə bir düyməyə basarkən:

     lastFocus.element.selection( 'setPos', lastFocus.pos) lastFocus.element.selection( 'replace', {text: myKeyPadChar, caret: 'end'}) 
1
04 февр. cavab Flint O'Brien 04 fevral. 2015-02-04 09:12 '15 'da 9:12' da 0 2015-02-04 09:12

Bunu bir keyword ilə etdim.

 $("#id input").trigger('keyup'); 
0
15 мая '15 в 17:49 2015-05-15 17:49 Cavab Abba tərəfindən 15 May 'da 17:49' də verilir 2015-05-15 17:49

Bir xəttdə bunu etmək istəsiniz, istifadə edə bilərsiniz

 $("input").trigger(jQuery.Event('keydown', { which: '1'.charCodeAt(0) })); 
0
17 окт. Benjamin Udink ten Cate Oct 17 tərəfindən verdiyi cavabı 2017-10-17 12:58 '17 at 12:58 2017-10-17 12:58