JQuery-dən istifadə etməklə klaviatura daxil edin?

Istifadəçi JQuery istifadə edərək Enter düyməsini basıb qoyduğunu müəyyənləşdirmək istərdim.

Bu necə mümkündür? Bir plugin tələb olunur?

EDIT: keypress() metodundan istifadə etmək lazımdır.

Bu komanda ilə brauzerinizin problemi olub-olmadığını kimin bildiyini bilmək istərdim - məsələn, xəbərdar olmalıyam ki, brauzer uyğunluğu məsələləri varmı?

646
11 июня '09 в 9:39 2009-06-11 09:39 Chris 11 iyun 'da 9: 39'da təyin olundu. 2009-06-11 09:39
@ 15 cavab

JQuery bütün nöqtəsidir ki, brauzerlər arasındakı fərqlərdən narahat olmaq lazım deyil. Mən əminəm ki, bütün brauzerlərdə 13 sayda daxil ola bilərsiniz. Beləliklə, bunu nəzərə alaraq, bunu edə bilərsiniz:

 $(document).on('keypress',function(e) { if(e.which == 13) { alert('You pressed enter!'); } }); 
1206
11 июня '09 в 9:49 2009-06-11 09:49 Cavab Paolo Bergantino tərəfindən 11 iyun 'da 9:49' da verildi. 2009-06-11 09:49

Tədbirə "enter in" düyməsinin bağlanmasını asanlaşdırmaq üçün kiçik bir plugin yazdım:

 $.fn.enterKey = function (fnc) { return this.each(function () { $(this).keypress(function (ev) { var keycode = (ev.keyCode ? ev.keyCode : ev.which); if (keycode == '13') { fnc.call(this, ev); } }) }) } 
border=0

İstifadə edin:

 $("#input").enterKey(function () { alert('Enter!'); }) 
119
01 апр. 01 aprel tarixində Andrea tərəfindən verilmiş cavab 2012-04-01 17:00 '12 saat 17: 00-da, 2012-04-01 17:00

@Paolo Bergantino tərəfindən göndərilən kodu ala bilmədi, amma onu e.which əvəzinə $(document)e.which e.keyCode , mən qüsursuz işlədiyini gördüm.

 $(document).keypress(function(e) { if(e.which == 13) { alert('You pressed enter!'); } }); 

JS Bin misalına keçid

60
21 июня '11 в 13:45 2011-06-21 13:45 cavab 21 İyun tarixində saat 13: 45-də Ian Roke tərəfindən verilmişdir 2011-06-21 13:45

Bir neçə brauzerlə daha uyğun olmağı tapdım:

 $(document).keypress(function(event) { var keycode = event.keyCode || event.which; if(keycode == '13') { alert('You pressed a "enter" key in somewhere'); } }); 
49
13 марта '12 в 22:09 2012-03-13 22:09 Cavab 13 mart 2012-ci ildə saat 12: 00-da JESAL -də verilmişdir 2012-03-13 22:09

Bunu jQuery hadisə tanımlayıcısı "keydown" istifadə edərək edə bilərsiniz

  $( "#start" ).on( "keydown", function(event) { if(event.which == 13) alert("Entered!"); }); 
26
11 окт. Cavab Nasruddin 11 okt verilir . 2013-10-11 10:20 '13 at 10:20 'da 2013-10-11 10:20

Bu qərarda bir müddət vaxt keçirdim, inşallah kimsə kömək edəcək.

 $(document).ready(function(){ $('#loginforms').keypress(function(e) { if (e.which == 13) { //e.preventDefault(); alert('login pressed'); } }); $('#signupforms').keypress(function(e) { if (e.which == 13) { //e.preventDefault(); alert('register'); } }); }); 
8
05 янв. cavab Samuel Kwame Antwi tərəfindən verilmişdir 05 Yanvar 2015-01-05 03:28 '15 at 3:28 'də 2015-01-05 03:28

Keypress () hadisə metodu var. Açıq giriş nömrəsi ascii 13dir və hansı brauzerin istifadə olunduğuna bağlı deyil.

7
11 июня '09 в 9:45 2009-06-11 09:45 cavab 11 iyun 09: 09-da Richard Simões tərəfindən 2009-06-11 09:45 ilə verilir

Andrea'nın kiçik cavabı genişləndirilməsi, modifiye edilmiş giriş preslerini (yani, ctrl-enter və ya kaydır-daxil etmək) istəsəniz köməkçi bir üsuldan istifadə etməyə kömək edir. Məsələn, bu seçim aşağıdakı kimi əlaqə yaratmağa imkan verir:

 $('textarea').enterKey(function() {$(this).closest('form').submit(); }, 'ctrl') 

İstifadəçi bu mətn formasında vurğulamaqla ctrl-girə vurduqda formu təqdim edin.

 $.fn.enterKey = function (fnc, mod) { return this.each(function () { $(this).keypress(function (ev) { var keycode = (ev.keyCode ? ev.keyCode : ev.which); if ((keycode == '13' || keycode == '10')  (!mod || ev[mod + 'Key'])) { fnc.call(this, ev); } }) }) } 

(həmçinin TEXTAREA- da Ctrl + Enter jQuery-ə baxın )

6
27 янв. Jan 27 ilə cevap verildi 2015-01-27 05:10 '15 at 5:10 'də 2015-01-27 05:10

event.key və müasir JS istifadə edin!

 $(document).keypress(function(event) { if (event.key === "Enter") { // Do something } }); 

və ya jQuery olmadan:

 document.addEventListener("keypress", function onEvent(event) { if (event.key === "Enter") { // Do something better } }); 

Mozilla docs

Desteklenen brauzerlər

5
06 сент. Cavab Gibolt tərəfindən verilib 06 Sentyabr. 2017-09-06 00:36 '17 'də 0:36' da 2017-09-06 00:36

Enter düyməsini aşkar etmək üçün bunu cəhd edin.

 $(document).on("keypress", function(e){ if(e.which == 13){ alert("You've pressed the enter key!"); } }); 

Demo @ Keyboard Entry Detection-a baxın

4
28 марта '18 в 15:02 2018-03-28 15:02 Cavab 28 mart 18: 18-da, jonathan klevin tərəfindən verilir. 2018-03-28 15:02

Bəzi hallarda, səhifənin digər sahələri üçün deyil, məsələn, adı olan bir səhifəyə daxil etmək üçün, səhifənin müəyyən bir sahəsi üçün ENTER düyməsini bastırmanız tələb oluna bilər <div> SEARCH sahəsi ilə.

Bunu etmək üçün mənə bir az vaxt lazım idi və mən cəmiyyət üçün bu sadə, lakin tam nümunəni dərc edirəm.

 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test Script</title> <script src="/lib/js/jquery-1.7.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $('.container .content input').keypress(function (event) { if (event.keyCode == 10 || event.keyCode == 13) { alert('Form Submission needs to occur using the Submit button.'); event.preventDefault(); } }); </script> </head> <body> <div class="container"> <div class="header"> <div class="FileSearch"> <!-- Other HTML here --> </div> </div> <div class="content"> <form id="testInput" action="#" method="post"> <input type="text" name="text1" /> <input type="text" name="text2" /> <input type="text" name="text3" /> <input type="submit" name="Submit" value="Submit" /> </form> </div> </div> </body> </html> 

JSFiddle Playground-a keçid : [Submit] düyməsini heç bir şey etməz, ancaq mətn qutusundan birindən ENTER düyməsini basaraq formu göndərməyəcəksiniz.

4
03 дек. cavab jp2code 03 dek verilir . 2013-12-03 02:05 '13 'da 2:05' de 2013-12-03 02:05
2
11 июня '09 в 9:43 2009-06-11 09:43 Cavab Haim Evgi tərəfindən 11 iyun 'da 9:43' da verildi. 2009-06-11 09:43

Hesab edirəm ki, ən asan metod vanil javacriptdən istifadə etmək olar:

 document.onkeyup = function(event) { if (event.key === 13){ alert("enter was pressed"); } } 
0
01 дек. Cavab Duan Walker tərəfindən verilir 01 Dekabr. 2016-12-01 01:03 '16 'da 1:03' də 2016-12-01 01:03
 $(function(){ $('.modal-content').keypress(function(e){ debugger var id = this.children[2].children[0].id; if(e.which == 13) { e.preventDefault(); $("#"+id).click(); } }) }); 
0
31 янв. Cavab Tayfun Açıkgöz tərəfindən 31 yanvar 2019-01-31 17:23 '19 da 5:23 PM 2019-01-31 17:23

Bir istifadəçi bir girişə basıldığını müəyyən etmək üçün asan bir yol cihazınızdakı əsas dəyəri yoxlamaq üçün əsas nömrəni, əsas giriş nömrəsini = 13 istifadə etməkdir.

 $("input").keypress(function (e) { if (e.which == 32 || (65 <= e.which  e.which <= 65 + 25) || (97 <= e.which  e.which <= 97 + 25)) { var c = String.fromCharCode(e.which); $("p").append($("<span/>")) .children(":last") .append(document.createTextNode(c)); } else if (e.which == 8) { // backspace in IE only be on keydown $("p").children(":last").remove(); } $("div").text(e.which); }); 

Enter düyməsini basaraq 13 nəticə əldə edəcəyik. Bir əsas dəyərdən istifadə edərək bir funksiyaya zəng edə bilərsiniz və ya istədiyiniz hər şeyi edə bilərsiniz

  $(document).keypress(function(e) { if(e.which == 13) { console.log("User entered Enter key"); // the code you want to run } }); 

Enter düyməsini basıldıqdan sonra düyməni hədəfləmək istəyirsinizsə, kodu istifadə edə bilərsiniz

  $(document).bind('keypress', function(e){ if(e.which === 13) { // return $('#butonname').trigger('click'); } }); 

Bu kömək edir

0
17 апр. cavab user2216399 17 apr tərəfindən verilir . 2013-04-17 14:17 '13 at 2:17 pm 2013-04-17 14:17

yazıları ilə bağlı digər suallar və ya bir sual