Der er forskel på validering på textbox, radioknapper osv.. de har forskellige egenskaber..
Så må du bare lave et check:
if (feltnavn.type == "radio") { // det er en radioknap if (feltnavn.checked) { // radioknappen er markeret } else { // radiokanppen er IKKE markeret } } else { // det er IKKE en radioknap }
Normalt bruger man ikke direkte navn på objekter.. man laver en loop.. og så er det godt at bruge denne metode..
Men loops bruger man kun, hvis man har mange elementer i formen.
Hvis du har mulighed for det, skriv lige et link til siden, så vi kan test/finde løsninger..
Jeg er ikke interesseret i at loope idet ikke alle felter skal valideres, ligesom jeg gerne vil kunne "smide" brugeren tilbage til et felt som "fejler".
// nu kan vi henvise til formen, ved at bruge "f" (eller andet, hvis man ønsker det):
funcion tjek_form_oplysning(f) { if (!f.f01.checked) { // brugeren hverken valgt "ja" eller "nej", og sendes derfor tilbage: alert("Du skal vælge ja eller nej"); return false; }
return true; // mener faktisk at man skal have "true" med, for at det er korrekt kode.. }
Når man putter "!" foran, betyder det "false".. dvs, linien svarer til:
Okay, men jeg vil være rimelig ked af, at lave hele min validering om.
Hvis jeg nu sætter ! foran min oprindelige validering, så fortæller den mig godt nok, at der ikke er valgt noget, men den submitter alligevel når jeg trykker "OK":
if(!tjek.f01.checked) { alert('Spørgsmål nr. 1 er ikke besvaret'); tjek.f01.focus(); return false; }
Kan det ikke løses uden at skulle ændre hele min kode ?
<script type="text/JavaScript"> function tjek(f) { if (!f.testradio[0].checked && !f.testradio[1].checked) { alert("Du skal vælge enten Ja eller Nej"); return false; }
if (f.testtext.value == "") { alert("Du skal skrive noget"); f.testtext.focus(); return false; }
Hvis du undrer dig over, at der står [0] og [1], så er det fordi radioknapper er arrays (der står samme navn: name="DetSammeBeggeSteder").. og det skal det også være..
Jeg lavede engang et script, hvor man kunne skrive hvilke felter der skulle valideres.. eller hvilke felter der *ikke* skulle valideres.. husker det ikke lige.. :-)
Men det blev gjort via en array, og en loop.. så sparer man en masse kode..
Ja den havde jeg ligesom selv regnet ud, men hvor ? Jeg skrotter sg* det hele og starter forfra.
Jeg kan iøvrigt ikke helt se hvor det er den mangler ud fra det du har skrevet:
<script language="javascript"> funcion tjek_form_oplysning(v) { if (!v.f01[0].checked && !v.f01[1].checked) { alert("Du skal vælge enten Ja eller Nej"); return false; } if (v.navn.value == "") { alert("Du skal skrive noget"); v.navn.focus(); return false; } return true; } </SCRIPT>
Okay, så lykkedes det vist. Problemet/fejlen var, at der på samme side var en anden formular som gik ind og konfliktede med den nye.
/Goose
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.