Imituokite klavišų skirtukus su jQuery

.Net puslapyje turiu teksto laukus ir su jQuery norite atlikti šiuos veiksmus: jei vartotojas paspaudžia ant grįžimo, programa turėtų elgtis taip, tarsi jis naudojo skirtuko klavišą, taip pasirinkdamas kitą elementą. Išbandžiau šį kodą (ir dar kelis):

 <script type="text/javascript"> jQuery(document).ready(function () { $('.tb').keypress(function (e) { if (e.keyCode == 13) { $(this).trigger("keydown", [9]); alert("return pressed"); } }); }); 

 <asp:TextBox ID="TextBox1" runat="server" CssClass="tb"></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server" CssClass="tb"></asp:TextBox> 

bet tai tiesiog neveikia! Ar kažkas trūksta klaidos atveju?

Štai keletas mano naudojamų nuorodų

čia

ir čia

21
09 февр. nustatė AGuyCalledGerald 09 vasaris 2012-02-09 18:52 '12 at 18:52 2012-02-09 18:52
@ 4 atsakymai

Pabandykite atlikti šiuos veiksmus:

http://jsbin.com/ofexat

 $('.tg').bind('keypress', function(event) { if(event.which === 13) { $(this).next().focus(); } }); 

arba ciklo versija: http://jsbin.com/ofexat/2

12
09 февр. atsakymas pateikiamas czerasz 09 vasaris 2012-02-09 19:03 '12 19:03 2012-02-09 19:03

Aš sukūriau paprastą jQuery įskiepį, kuris išsprendžia šią problemą. Jis naudoja „: tabbable“ jQuery UI selektorių, kad surastų kitą „tabbable“ elementą ir jį pasirinktų.

Naudojimo pavyzdys:

 // Simulate tab key when enter is pressed $('.tb').bind('keypress', function(event){ if(event.which === 13){ if(event.shiftKey){ $.tabPrev(); } else{ $.tabNext(); } return false; } }); 
8
11 сент. Mark Lagendijk atsakymas, pateiktas rugsėjo 11 d 2013-09-11 15:06 '13, 15:06, 2013-09-11 15:06

Iš keleto atsakymų aš derinau idealų sprendimą man, kur jie įveda veiksmą kaip įvesties skirtuką ir pasirinkite ir fokusuoja į kitą įvesties, pasirinkimo ar teksto lauką, taip pat leidžia įvesti vidinę teksto sritį.

  $("input,select").bind("keydown", function (e) { var keyCode = e.keyCode || e.which; if(keyCode === 13) { e.preventDefault(); $('input, select, textarea') [$('input,select,textarea').index(this)+1].focus(); } }); 
6
31 дек. Atsakymą pateikė Shehbaz gruodžio 31 d. 2014-12-31 14:18 '15, 14:18, 2014-12-31 14:18

Išbandykite

 $(this).trigger({ type: 'keypress', which: 9 }); 
3
09 февр. atsakymą pateikė Shai Mishali 09 vasaris 2012-02-09 18:58 '12 at 18:58 2012-02-09 18:58

Kiti klausimai apie „ žymes arba užduoti klausimą