jeg er ikke sikker på at jeg synes at det er en forbedring af interfacet, men her er i hvert fald en måde det kunne løses på: ---8<---------- <script language="javascript" type="text/javascript"> var tabIndex = 0;
Jeg er ikke helt sikker på hvad det er du ønsker??? Skal brugeren have en knap hvor han kan "tab'e" rundt mellem input felterne? Hvad mener du med at du vil resette formen, for derefter at validere felterne? Det giver ikke megen mening? :-(
Prøv at forklare hvad det er det skal bruges til. Hvis du vil validere indholdet i felterne skal du ikke starte med at resette dem! :-o
i øvrigt fandt jeg en lille bug i min forrige besvarelse. Løsningen her kunne være mere sexet, men den virker (den forige løsning havde problemer med hidden felter ---8<---------- <script language="javascript" type="text/javascript"> var tabIndex = 0;
function tabThroughElements(tabKnap){ if (document.forms["myForm"].elements[tabIndex].type=="hidden"){ while (document.forms["myForm"].elements[tabIndex].type=="hidden"){ tabIndex++; if (tabIndex>=document.forms["myForm"].elements.length){ tabIndex=0; } } } document.forms["myForm"].elements[tabIndex++].focus(); if (document.forms["myForm"].elements[tabIndex]==tabKnap){ tabIndex++; } if(tabIndex>=document.forms["myForm"].elements.length){ tabIndex=0; } } </script> ---8<----------
Problemet er, at hvis jeg bruger reset-knappen (eller min 'slet'-knap), så aktiveres min validering ikke.
Hvis alle felterne for focus, så aktivere det valideringen, men hvis der er en bedre løsning er jeg åben for forslag. Men validerings-systemet skal forblive som det er :)
Jeg er ikke helt sikker på hvad det ikke er der holder.
Til gengæld er jeg sikker på at det må kunne gøres smartere at validere felterne, end at fyre en focus af på dem allesammen! Kan du ikke kalde valideringsfunktionerne BÅDE onkeyup, onfocus OG onsubmit?
I øvrigt er det så ikke lidt overkill at validere SÅ meget? Er det ikke nok at validere inden brugeren sender noget afsted?
Hvorfor skal felterne valideres, hvis brugeren har trykket reset ... så er der vel ikke noget (interessant) tilbage i felterne?
Det er sikkert bare mig der er lidt langsom, og klokken der er blevet lidt mange, men jeg fatter stadig ikke hvorfor du vil validere felter der bliver tømt med en reset/slet alt ?
Hvis nu fx jeg vil have brugeren til at indtaste et korrekt Postnummer. Så skulle det røde kryds gerne afhakkes præcis i det øjeblik han har indtastet 4 tal (ikke begyndene med 0). Hvis han derefter trykker på reset/slet, så nulstilles/slettes felterne. Nu er feltet med Postnummer TOMT men stadig afhakket med grønt. Det er ikke så smart:
ok - nu forstår jeg hvad det er du vil :) Jeg kunne nu ikke få det røde kryds til at forsvinde i dit eksempel.
Jeg vil faktisk tro at denne kode ville være tilstrækkelig til at give alle felterne focus: ---8<---------- for (var i=0;i<document.minForm.elements.length){ if (document.minForm.elements[i].type!=hidden){ document.minForm.elements[i].focus(); } } ---8<----------
...men jeg er stadig sikker på at det IKKE er den smarte måde at gøre det på! Du burde lave en overordnet valideringsfunktion som lige løber gennem alle felterne. Hvis det er fordi du har svært ved at ramme de enkelte felters valideringskode (f.eks. hvis de ligger indlejret i elementerne), så bør du skille dem ud i funktioner du både kan kalde fra elementerne og fra din overordnede valideringsfunktion.
og for at implementere den ovenstående kode i dit eksempel, kunne du f.eks. skrive: function giveAllFocus(){ indsæt koden her } og så skrive f.eks. din resetknap som: <input type="button" value="reset" onclick="this.form.reset(); giveAllFocus(); return false;">
Yep, det ser fint ud. prøver det lige når jeg kommer hjem fra arbejde.
Er meget forundret over, at du ikke kunne få feltet afhakket, det har virker på alle nye/gamle computere jeg har prøvet... Er du sikker på, at du indtastede et korrekt Postnumner ?
Jeg kan stadig ikke se, hvordan jeg kan lave min valideing om. De enkelte felter skal jo valideres løbende, dette gøres ved onkeyup. Hvordan vil du løse den, ved ikke at kalde funktionen jjrValidate i alle felter ?!
He he he ... min fejl :"-) Jeg fik jo ikke lige set at det var mit postnummer du søgte - jo - det virker fint! :)
Jeg ville absolut blive ved med at bruge onkeyup. Du kunne bare også lave en overordnet valideringsfunktion, som løb alle elementerne igennem og også brugte jjrValidate!
Det ser jo skønt ud :) Den sidste lille finish jeg synes mangler (hvis jeg SKAL være pernittengryn) er at feltet tømmes automatisk, når det får focus, hvis det er standardteksten der står i den.
Det var der så vidt jeg husker en tråd om for ikke så længe siden ... hmmm... Det kan f.eks. gøres som anvist her: http://www.eksperten.dk/spm/466785
Er det en kopi af min side, som den ser ud nu ? For så virker det ikke! Prøv fx at tast '1234' tryk så 'send' (så default ændres). Prøv derefter at ændrer værdien så den ikke valideres korrekt og tryk så Nulstil. Nu burde den valideres korrekt, men det gør den ikke :( Først når jeg giver den fokus igen.
Jo, den skal naturligvis validere hver gang der sker en ændring i feltet, det er da tosset hvis feltet pludselig bliver tomt, men stadig er grønt afhakket :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.