Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 935
Hei folkens.

Har opprettet et skjema for jobben som de skal bruke i form av undersøkelser / salg etc.

Øverst i skjema er det 3 knapper som er "radio".
Hele skjema er da 1 stort skjema, men trykker man f.eks på "salg" så får man opp 4-5 ekstra containere med felter som må fylles ut, og trykker man på noe annet så får man 2-6 andre containere som må fylles ut.

Disse containerne skjules og vises ut ifra hva som er valgt.

Problemet jeg har sett er at jeg har noen felter under "salg" som required og noen felt under f.eks "undersøkelse" er required. Skal jeg da på f.eks salg, fyller ut alt jeg trenger og så sende inn skjema, så får jeg beskjed om å fylle ut alle felt som er "required".

Dette selv om de andre feltene da er skjult som i "display: none"

Er det noen vei å gå rundt dette?
Har søkt på google en del og noen mente jeg måtte kjøre en sjekk for å ta bort required på de feltene i seksjonene som ikke skulle vises etc, men dette fungerte ikke så veldig bra.

Er det en annen enklere måte å gjøre dette på ?
Dette er da html, css, javascript og php kode jeg bruker for å lage.

Takk på forhånd.
Anten kan du sette required til true i det du endrer display på dei skjulte konteinerane eller så kan du droppe å ha skjulte konteinerar, og heller legge til i dommen etterkvart som du treng nye felt.
Sitat av Nikon01 Vis innlegg
Har søkt på google en del og noen mente jeg måtte kjøre en sjekk for å ta bort required på de feltene i seksjonene som ikke skulle vises etc, men dette fungerte ikke så veldig bra.
Vis hele sitatet...
Jeg tror dette er den enkleste løsningen. Hva "fungerte ikke så bra" betyr er jeg mer usikker på.
Sitat av fuzzy76 Vis innlegg
Jeg tror dette er den enkleste løsningen. Hva "fungerte ikke så bra" betyr er jeg mer usikker på.
Vis hele sitatet...
Det jeg prøvde fungerte ikke ved at når jeg valgte å bruke javascript til å ta bort required på de feltene som hadde required, så ville den ikke ta bort alt.

Jeg kan sjekke ut dette, men det betyr igjen at jeg må gjøre om alt som vil ta evig med tid.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Har ikke Javascript ferdige biblioteker for input-validering du kan sette opp egne regler for? Eventuelt, kan du sjekke felter manuelt per side/del av skjemaet du trenger.

Du blir forresten også uansett nødt til å validere igjen på backend/server (dvs: det er en forferdelig dårlig idé å la være) så du kan like gjerne ta logikken der og returnere en feilkode/beskjed. Da slipper du å knote med presentasjonslogikken, også.
Hmm. Har ikke sjekket om JavaScript har et eget bibliotek for akkurat det. Kanskje sjekke det ut.
Ja, tenkte kanskje bare å kjøre en manuell sjekk i JS for å sjekke om visse felter er fylt ut ut ifra hva som er valgt.

Man må huke av en checkbox for å bekrefte at skjema er 100% korrekt utfylt før man får opp en "submit" knapp, så kan evt. kjøre en sjekk når denne checkboxen er huket av.
▼ ... noen uker senere ... ▼
Det finnes flere måter å håndtere dette problemet på. En metode kan være å bruke JavaScript for å fjerne "required" attributten på de skjulte feltene når et annet alternativ er valgt. Dette kan gjøres ved å legge til en event lytter på radioknappene som sjekker hvilken knapp som er valgt og fjerner "required" attributten på de tilsvarende feltene.
En annen metode kan være å ikke bruke "required" på feltene i utgangspunktet, men å validere skjemaet ved hjelp av JavaScript før det sendes inn og vise en feilmelding for de obligatoriske feltene som ikke er fylt ut.

Det er viktig å merke seg at dette bare vil håndtere validering på klientsiden, så det kan være nødvendig å også validere skjemaet på serversiden for å sikre at alle nødvendige data er til stede før det behandles.