Avatar billede sthen Nybegynder
04. februar 2003 - 01:00 Der er 2 kommentarer og
1 løsning

Validering af form med radio

Øverste del af mit script ser pt. således ud:

<html>
<head>
<title></title>

<script type="text/javascript">
<!--
function disable(frm,mode) {
  var i;
  var obj_dis = (mode == 1) ? frm['eks'] : frm['int'];
  var obj_ena = (mode == 1) ? frm['int'] : frm['eks'];
  for (i = 0; i < obj_dis.length; i++) {
    obj_dis[i].disabled = true;
  }
  for (i = 0; i < obj_ena.length; i++) {
    obj_ena[i].disabled = false;
  }
}

//-->
</script>

<script language="JavaScript" type="text/javascript">
<!--

function val(f) {
  valgt=0;
  for (i=0;i<f.hvor.length;i++) {
    if (f.hvor[i].checked) valgt=1;
  }
  if (valgt==0) {
    alert("Intern / ekstern skal udfyldes");

    return false;
  }

if (f.overskrift.value == ""){
      alert("Overskrift skal angives!")
      return false;
  }

  return true;
}
   

//-->
    </script>

<head><body>

<FORM onSubmit='return val(this);' METHOD="POST" ACTION="<? echo $_SERVER['PHP_SELF']; ?>">

<INPUT TYPE="RADIO" NAME="hvor" VALUE="intern" onClick="disable(this.form,1)">Intern oplysning
<BR>
<INPUT TYPE="RADIO" NAME="hvor" VALUE="ekstern" onClick="disable(this.form,2)">Ekstern oplysning
<BR><BR>
<INPUT TYPE="RADIO" NAME="int" VALUE="Møde">Møde
<INPUT TYPE="RADIO" NAME="int" VALUE="Vielse">Vielse
<INPUT TYPE="RADIO" NAME="int" VALUE="Begravelse">Begravelse
<INPUT TYPE="RADIO" NAME="int" VALUE="Div">Andet
<BR>
<INPUT TYPE="RADIO" NAME="eks" VALUE="Koncert">Koncert
<INPUT TYPE="RADIO" NAME="eks" VALUE="Sogneaften">Sogneaften
<INPUT TYPE="RADIO" NAME="eks" VALUE="Seniorklub">Seniorklub
<INPUT TYPE="RADIO" NAME="eks" VALUE="Special">Sær-arrangement


Som det ses sker en nedtonning af visse felter ved klik på enten ekstern eller intern. Der er desuden validering på disse to radiobuttons, for at sikre at én er valgt.

Mit problem ligger nu i, at jeg også gerne vil sikre mig at en af de fire "ikke-nedtonede" radiobuttons ligeledes bliver valgt.

Hvordan kringler jeg den ???
Avatar billede atoft Nybegynder
04. februar 2003 - 09:41 #1
prøv dette.

function val(f) {

    if(!checkInternEkstern(f)) return false;

    if (f.overskrift.value == ""){
      alert("Overskrift skal angives!")
      return false;
  }

  return true;
}

function checkInternEkstern(f) {
  if (f.hvor.value == "intern") {
        for (var j=0; j < f['int'].length; j++) {
        if (f['int'][j].checked) {
                return true;
            }
        }
        alert("Intern skal vælges");
  } else {
        for (var j=0; j < f['eks'].length; j++) {
        if (f['eks'][j].checked) {
                return true;
            }
        }
        alert("Ekstern skal vælges");
    }
    return false;
}

/atoft
Avatar billede sthen Nybegynder
04. februar 2003 - 15:41 #2
Det eneste jeg får ud af det er, at den hele tiden siger "Ekstern skal vælges"
Avatar billede sthen Nybegynder
05. februar 2003 - 23:18 #3
Fandt selv ud af det, så jeg lukker igen.

Det kom til at hedde:

<html>
<head>
<title></title>

<script type="text/javascript">
<!--
function disable(frm,mode) {
  var i;
  var obj_dis = (mode == 1) ? frm['eks'] : frm['int'];
  var obj_ena = (mode == 1) ? frm['int'] : frm['eks'];
  for (i = 0; i < obj_dis.length; i++) {
    obj_dis[i].disabled = true;
  }
  for (i = 0; i < obj_ena.length; i++) {
    obj_ena[i].disabled = false;
  }
}

//-->
</script>

<script type="text/javascript">
<!--

function val(f) {
  valgt=0;
  fundet=0;

  for (i=0;i<f.hvor.length;i++) {
    if (f.hvor[i].checked)
    valgt=1;
    }
      if (valgt==0) {
      alert("Intern / ekstern skal udfyldes");
      return false;
      }


  for (j=0;j<f.int.length; j++) {
    if (f.int[j].checked)
    fundet=1;
    }

  for (k=0; k<f.eks.length; k++) {
    if (f.eks[k].checked)
    fundet=1;
    }

      if (fundet==0) {
      alert("Husk at vælge type!");
      return false;
      }

  return true;
}
//-->
</script>


<head><body>
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel