Alle felter har et 'name', men ville bruge samme 'function' i flere felter. Det er sådan at 3 felter med telefon nummer, og hvis felt 1 =' ' er næste felt deaktiveret...
Jeg kan jo kun forholde mig til det, du beder om. I forhold til det, virker koden helt optimalt.
Da jeg ikke kan læse dine tanker, ved jeg ikke, hvad det skal bruges til eller hvordan. Jeg er dog ret sikker på, du har valgt en uhensigtsmæssig struktur
Sorry, kan godt se du ikke kan læse tænker :) Men der er 3 felter til telefon numre... - hvis første felt ikke udfyldt, felt 2, 3 deaktiveret - hvis felt 2 ikke udfyldt, felt 3 deaktiveret.
Eller, det burde jo egenlig være at felterne bliver aktiveret efter hånden. Sådan at felt 2, 3, er deaktivret fra start. ???
>men forstår ikke din sidste linje, med antog du anvender dine felter serverside (PHP / ASP / .NET / JAVA), for at bruge dem til et eller andet, efter du valideret felterne med JS
har du tested følgende: skriv noget i tel1 skriv noget i tel2 -> gå tilbage til tel1 og slet dette ??, er det hensigt mæssigt ?? det var derfor jeg havde document[frm][boxname][j].readOnly = true; i min løsning
Problemmet med Readonly, er hvis du taster nummer i felt 1, og hopper videre til felt 2. og du så opdager at nummer i felt 1 er forkert, kan man ikke rette nummeret.
Men samtidig hvis man udfylder alle felterne, og slettet felt 2. bliver nummer i felt 3 ikke aktiv.
Måske er den bedste løsning der, at de bare ikke bliver deaktiveret igen.
Eller har du en bedre ide?
Idéen bagDisabled, er at formen skal være hurtig at udfylde. og jo flere besparelse der er, jo bedre er det. Der er nemlig 15 felter, hvor 6 af dem er tel/mob numre.
Ps. har dog ikke testet dine sammen sætninger af kode, men kan rigtig godt lide ideen med at slå dem sammen.
Problemmet med Readonly, er hvis du taster nummer i felt 1, og hopper videre til felt 2. og du så opdager at nummer i felt 1 er forkert, kan man ikke rette nummeret.
Men samtidig hvis man udfylder alle felterne, og slettet felt 2. bliver nummer i felt 3 ikke aktiv.
Måske er den bedste løsning der, at de bare ikke bliver deaktiveret igen.
Eller har du en bedre ide?
Idéen bagDisabled, er at formen skal være hurtig at udfylde. og jo flere besparelse der er, jo bedre er det. Der er nemlig 15 felter, hvor 6 af dem er tel/mob numre
Ps. har dog ikke testet dine sammen sætninger af kode, men kan rigtig godt lide ideen med at slå dem sammen.
nogle alternative forslag, hvor man kun overfører this, det er vist de pæneste løsninger EnableNext1: hvis man anvender array løsningen som jeg anbefaler, den er mest flexibel, og nemmest at vedligeholde, jeg kan sagtens leve med, det først onblur næste felt bliver enablet
EnableNext2: den metode du pt anvender.
læg mærke til de selv finder alle nødvendige oplysninger ud fra elm (this)
<script type="text/javascript"> function EnableNext1(elm){ var frm = elm.form.name; var boxname = elm.name; var lng = document[frm][boxname].length; for(var j=0; j<lng; j++){ if(document[frm][boxname][j].value.length > 0){ document[frm][boxname][j+1].disabled=false; document[frm][boxname][j+1].focus(); } } }
function EnableNext2(elm) { var Frm = elm.form.name; // pnr var ElmName = elm.name; // tel_5 var ElmNameLng = ElmName.length; // 5 var nr = ElmName.substr(ElmNameLng-1); // udtrækker sidste karakter i element navnet (5) var Name = ElmName.substr(0,(ElmNameLng-1) ); // udtrækker hele element navnet undtagen sidste karakter (tel_) var ElmNameNext = [Name]+( Number(nr)+Number(1) ); // tel_6 document[Frm][ElmNameNext].disabled = (document[Frm][ElmName].value.length > 0)? false : true; } </script>
@olebole interessant løsning, men kunne det tænkes man har flere telefon nummer, feks firma mobil, privat mobil, nu når spørgeren har flere felter til telefon nummer ?? din løsning giver kun mulighed for at indtaste i et felt, er det sådan opgaven skal forståes ??. Hvis det er tilfælde kunne man jo nøjes med et felt. men vi er enige om det er array løsningen skal baseres på
Ja, det kunne sagtens tænkes, men som jeg læser spørgerens kommentarer, ønsker han kun ét felt skrivbart (hmmm ... er der mon noget, der hedder sådan?), but who knows? =)
Jeg ville i så fald lave felter for det - og give dem passende navne.
I det hele taget har jeg lidt svært ved at finde logikken i spørgsmålet =)
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.