Avatar billede cyberdude Nybegynder
02. juni 2001 - 01:09 Der er 8 kommentarer og
1 løsning

validering af radio input ??

Hejsa!!

Jeg har 3 radio knapper med samme navn men så forskellig value

<input type=\"radio\" name=\"betaling\" value=\"3 måneder\">  3 måneders periode.</td></tr>
<input type=\"radio\" name=\"betaling\" value=\"6 måneder\">  6 måneders periode.</td></tr>
<input type=\"radio\" name=\"betaling\" value=\"12 måneder\">  12 måneders periode.</td></tr>

jeg har så forsøgt med denne her til at \"validere\" inputtet med...

if (f.betaling.value==\"\") {
alert(\"Du skal vælge betalings periode\");
f.betaling.focus();
return false;
}

Valg i et af felterne er påkrævet, men det virker ikke for jeg kan submitte formen uden at have foretaget noget valg :-((
hvad skal jeg så bruge?
Avatar billede erikjacobsen Ekspert
02. juni 2001 - 01:12 #1
Hvor kalder du den validering - mere kode .... :)
Avatar billede cyberdude Nybegynder
02. juni 2001 - 01:16 #2
jeg har en bestilling.php side med disse 3 radio tingester på....

i toppen af den side laver jeg en include af en fil ved navn censur.php
og den fil indeholder så...
--- snip (kun lige det nederste) ---
if (f.password.value.length < 6 || f.password.value.length > 8) {
alert(\"Password er ikke gyldigt!\\nDet SKAL være mellem 6-8 tegn langt\");
f.password.focus();
return false;
}
if (f.betaling.value==\"\") {
alert(\"Du skal vælge betalings periode\");
f.betaling.focus();
return false;
}
return true;
}
</script>
--- snap ---

og her komer så min form....

resten af felterne virker fint, men man kan submitte formen uden at der er makeret noget i betaling...


<input type=\"radio\" name=\"betaling\" value=\"3 måneder\">  3 måneders periode.</td></tr>
<input type=\"radio\" name=\"betaling\" value=\"6 måneder\">  6 måneders periode.</td></tr>
<input type=\"radio\" name=\"betaling\" value=\"12 måneder\">  12 måneders periode.</td></tr>

Avatar billede cyberdude Nybegynder
02. juni 2001 - 01:17 #3
her er min form action det er her jeg kalder valideringen...

<form action=\"bestilling_tak.php\" method=\"post\" name=\"bestilling\" onsubmit=\"return check(document.bestilling)\">
Avatar billede erikjacobsen Ekspert
02. juni 2001 - 01:19 #4
Du skal gøre sådan med radioknapper:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE=\"JavaScript\">
<!--
function ok(f) {
  valgt=0;
  for (i=0;i<f.betaling.length;i++) {
    if (f.betaling[i].checked) valgt=1;
  }
  if (valgt==0) {
    alert(\"Du skal vælge betalings periode\");
  // f.betaling.focus();  // virker ikke på radioknapper
    return false;
  }
  return true;
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<FORM METHOD=POST ACTION=\"nowhere.php\" onsubmit=\"return ok(this);\">
<input type=\"radio\" name=\"betaling\" value=\"3 måneder\">  3 måneders periode.<br>
<input type=\"radio\" name=\"betaling\" value=\"6 måneder\">  6 måneders periode.<br>
<input type=\"radio\" name=\"betaling\" value=\"12 måneder\">  12 måneders periode.<br>
<input type=\"submit\">
</FORM>
</BODY>
</HTML>
Avatar billede cyberdude Nybegynder
02. juni 2001 - 01:25 #5
nu ser mit \"censur.php\" script sådant her ud..

(bunden af det!)

if (f.hotel.value==\"\") {
alert(\"Du skal vælge hvilket hotel du ønsker\");
f.hotel.focus();
return false;
}
if (f.password.value.length < 6 || f.password.value.length > 8) {
alert(\"Password er ikke gyldigt!\\nDet SKAL være mellem 6-8 tegn langt\");
f.password.focus();
return false;
}
function ok(f) {
  valgt=0;
  for (i=0;i<f.betaling.length;i++) {
    if (f.betaling[i].checked) valgt=1;
  }
  if (valgt==0) {
    alert(\"Du skal vælge betalings periode\");
    return false;
return true;
}
</script>

og når jeg loader bestillings siden nu, så får jeg en udført men med fejl meddelse...??
Avatar billede erikjacobsen Ekspert
02. juni 2001 - 01:26 #6
drop lige den der function ok  - du har jo din egen funktion
Avatar billede erikjacobsen Ekspert
02. juni 2001 - 01:28 #7
if (f.hotel.value==\"\") {
  alert(\"Du skal vælge hvilket hotel du ønsker\");
  f.hotel.focus();
  return false;
}
if (f.password.value.length < 6 || f.password.value.length > 8) {
  alert(\"Password er ikke gyldigt!\\nDet SKAL være mellem 6-8 tegn langt\");
  f.password.focus();
  return false;
}
valgt=0;
for (i=0;i<f.betaling.length;i++) {
  if (f.betaling[i].checked) valgt=1;
}
if (valgt==0) {
  alert(\"Du skal vælge betalings periode\");
  return false;
}
return true;
}
</script>
Avatar billede cyberdude Nybegynder
02. juni 2001 - 01:28 #8
hvad skal jeg så indsætte... fandt selv fejlen der manglede en }

nu ser det sådant her ud

if (f.hotel.value==\"\") {
alert(\"Du skal vælge hvilket hotel du ønsker\");
f.hotel.focus();
return false;
}
if (f.password.value.length < 6 || f.password.value.length > 8) {
alert(\"Password er ikke gyldigt!\\nDet SKAL være mellem 6-8 tegn langt\");
f.password.focus();
return false;
}
function ok(f) {
  valgt=0;
  for (i=0;i<f.betaling.length;i++) {
    if (f.betaling[i].checked) valgt=1;
  }
  if (valgt==0) {
    alert(\"Du skal vælge betalings periode\");
    return false;
}
}
return true;
}
</script>

men det skal det åbentbart ikke, for jeg kan stadig submitte uden at vælge betaling!
Avatar billede cyberdude Nybegynder
02. juni 2001 - 01:31 #9
yeps så var den der!! takker endnu en gang!!

nu vil jeg i seng skal op kl 6,30 *GABBB* :-))
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester