Kom ihåg mig?
Home Menu

Menu


Flytta focus mellan formulärrutor med enter

Ämnesverktyg Visningsalternativ
Oläst 2007-03-09, 11:03 #1
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
På en sida med ett stort antal formulärrutor att fylla i (<input type="text" ...>) skulle det vara praktiskt att kunna använda enter för att flytta till nästa ruta istället för tab. I detta fall är det enbart siffror som ska fyllas i, och tabknappen sitter ju rätt långt bort från den numeriska delen på tangentbordet. Att kunna använda enter skulle snabba upp inmatningen rejält och den skulle kunna utföras med en hand.

Jag googlade lite och hittade dels ett förslag som jag inte fick att funka alls:

Kod:
<body onKeyDown="if (event.keyCode==13) {event.keyCode=9; return event.keyCode }">
dels hittade jag ett förslag som funkar i Firefox men inte i Explorer:

Kod:
<input type="text" name="t1" size="10" onChange="t2.select();">
<input type="text" name="t2" size="10" onChange="t3.select();">
<input type="text" name="t3" size="10" onChange="t1.select();">
Dock ger Firebug felmeddelande ifrån sig:

Kod:
[Exception... "'Nekades tillstånd att sätta egenskap XULElement.selectedIndex' when calling method: [nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: file:///F:/test.html :: onchange :: line 1" data: no]
Jag förstår inte vad felmeddelandet betyder, och det fungerar ju som jag hade tänkt i Firefox. Kan någon förklara?

Hur kan man få detta att fungera även i Explorer?
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-09, 11:35 #2
boenas avatar
boena boena är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2005
Inlägg: 416
boena boena är inte uppkopplad
Flitig postare
boenas avatar
 
Reg.datum: Sep 2005
Inlägg: 416
Det du behöver göra är att fixa en funktion istället och där använda dig av en IE-fix för att läsa in events. Du anropar sedan den från varje input-element med onChange...

Kod:
funktionensNamn(e)
{

if(!e) var e = window.event;  // IE-Fix

blablablabla kolla vilken knapp som är tryckt osv med keycode...

}
Inte för att jag förstår exakt varför du vill göra det då TAB är standard och människor kan bli förvirrade, om det är något internt för eget bruk dock så kan jag förstå
boena är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-09, 11:49 #3
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Citat:
Inte för att jag förstår exakt varför du vill göra det då TAB är standard och människor kan bli förvirrade, om det är något internt för eget bruk dock så kan jag förstå
Det handlar om en sida för "internt" bruk av ett fåtal personer som gör inmatningar av en större mängd numeriska koder vid upprepade tillfällen. Att kunna göra detta med en hand på den numeriska delen av tangentbordet skulle underlätta deras arbete mycket.

Får fortsätta experimentera med detta.
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-09, 12:32 #4
Holgers avatar
Holger Holger är inte uppkopplad
Medlem
 
Reg.datum: Mar 2007
Inlägg: 129
Holger Holger är inte uppkopplad
Medlem
Holgers avatar
 
Reg.datum: Mar 2007
Inlägg: 129
Kod:
<input type="text" name="c1" onKeyDown="if (event.keyCode==13) { c2.focus(); }" /> <br />
<input type="text" name="c2" onKeyDown="if (event.keyCode==13) { c3.focus(); }" /> <br />
<input type="text" name="c3" onKeyDown="if (event.keyCode==13) { c1.focus(); }" /> <br />
Funkar för mig i Fx samt IE7.
Holger är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-10, 21:51 #5
totoos avatar
totoo totoo är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2006
Inlägg: 730
totoo totoo är inte uppkopplad
Mycket flitig postare
totoos avatar
 
Reg.datum: Nov 2006
Inlägg: 730
annars borde det gå att leka med onsubmit på formuläret. För ett enterslag resulterar ju ofta i en submit, och att hålla koll på vilket input-element som användes senast (för att veta vilket man ska hoppa till) är ju inga konstigheter.

Men ditt problem kanske redan är löst.
totoo är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 06:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017