RulleRimfrost Skrevet 18. juli 2008 Del Skrevet 18. juli 2008 (endret) Jeg sliter litt med et script. Jeg tenkte å bestemme hvilken formfield det skulle fokuseres på ved å sende navnet på neste field til javascriptet, men det funker jo dårlig. Om jeg kjører scriptet uten å sende fieldname, så sier alerten "Undefined" - Her skulle den jo sagt "field1". Om jeg kjører scriptet via onChange så sier alerten "[Object]" når den skulle sagt "field3" f eks... Hva kjør jeg feil ? <script language="JavaScript"> function reCalc(formField){ if(formField == ""){ var focusOn = "field1"; } else{focusOn = formField}; alert(focusOn); // masse kalkulasjoner window.document.form.focusField.focus(); window.document.form.focusField.select(); } </script> <form name="form"> <input name="field1" type="text" onChange="java script:reCalc(field3)" tabindex="10"> <input name="field2" type="text" onChange="java script:reCalc(field1)" tabindex="15"> <input name="field3" type="text" onChange="java script:reCalc(field2)" tabindex="20"> </form> Endret 18. juli 2008 av RulleRimfrost Lenke til kommentar
Largie Skrevet 18. juli 2008 Del Skrevet 18. juli 2008 Er ingen ekspert på javascript og jeg får ikke testet dette. Men jeg mener du må sende feltnavnet inn som tekst og bruke document.getElementById('feltetditt'); for å hente ut riktig variabel som du kan hente ut .value fra osv... Forøvrig finnes det flere gode scripts som gjør noe i den gaten du er på jakt etter: http://javascript.internet.com/forms/tab-key-emulation.html http://javascript.internet.com/forms/auto-tab.html Lenke til kommentar
___ Skrevet 18. juli 2008 Del Skrevet 18. juli 2008 (endret) <html> <head> <script language="JavaScript"> function reCalc(formField){ if(formField == null){ var focusOn = form['field1']; } else{focusOn = formField}; // masse kalkulasjoner formField.focus(); formField.select(); } </script> </head> <body> <form name="form"> <input name="field1" type="text" onChange="java script:reCalc(form['field3'])" tabindex="10"> <input name="field2" type="text" onChange="java script:reCalc(form['field1'])" tabindex="15"> <input name="field3" type="text" onChange="java script:reCalc(form['field2'])" tabindex="20"> </form> </body> </html> Er neimen ikke sikker på hvordan du har tenkt, men jeg har iallefall ryddet unna åpenbare feil og mangler, så du kanskje kommer deg videre. Som du ser, når man skal referere til et felt, blir det på formen: <formnavn>['<feltnavn>'] Men husk at man da refererer til selve feltet, og ikke verdien i feltet. Skal man ha verdien blir det slik: <formnavn>['<feltnavn>'].value Hilsen Werner Endret 18. juli 2008 av wernie Lenke til kommentar
RulleRimfrost Skrevet 18. juli 2008 Forfatter Del Skrevet 18. juli 2008 Takker. Skal få testet dette. Det jeg prøver på er å overstyre tabindex i html-koden. Skriver mitt første javascript, og det irriterer meg at focus går til adresselinjen når jeg tab'er ut av siste feltet i skjemaet. Tenkte jeg da bare kunne sende navnet på neste felt inn i scriptet, for så å la skriptet flytte fokus til neste felt i skjemaet... Nybegynner-logikk. Mulig veien å gå er å fange keycode som i eksemplet over. Tenkte først det ville bli sluggish siden kalkulasjonene kan inneholde store iterasjoner, men det slår meg at jeg trenger jo selvfølgelig ikke fyre av disse før jeg trykker en knapp som faktisk flytter fokus ut av feltet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå