Avatar billede goose Nybegynder
04. maj 2006 - 11:32 Der er 4 kommentarer og
1 løsning

validering af radio knapper og tekstfelt

Jeg har en formular som bl.a. indeholder en række radio knapper således:

<TABLE BORDER="0">
<TR>
    <TD width="120">Beliggenhed<FONT COLOR="#6CAEDF">*</FONT></TD>
    <TD width="2">:</TD>
    <TD><INPUT TYPE="text" SIZE="60" MAXLENGTH="240" NAME="beliggenhed" class="tekstfelt"></TD>

</TR>
<TR valign="top">
    <TD width="120">Anvendelse<FONT COLOR="#6CAEDF">*</FONT></TD>
    <TD width="2">:</TD>
    <TD>
<input name="type_art" type="radio" value="1" onclick="document.getElementById('skjulVis').style.display=(this.checked)?'none':'block'">&nbsp;1<br>

<input name="type_art" type="radio" value="2" onclick="document.getElementById('skjulVis').style.display=(this.checked)?'none':'block'">&nbsp;2<br>

<input name="type_art" type="radio" value="3" onclick="document.getElementById('skjulVis').style.display=(this.checked)?'none':'block'">&nbsp;3<br>

<input name="type_art" type="radio" value="4" onclick="document.getElementById('skjulVis').style.display=(this.checked)?'none':'block'">&nbsp;4<br>

<input name="type_art" type="radio" value="5" onclick="document.getElementById('skjulVis').style.display=(this.checked)?'block':'none'">&nbsp;5
</TD>
</TR>


<TR id="skjulVis" style="display:none;">
    <TD width="120">Oplys anvendelse<FONT COLOR="#6CAEDF">*</FONT></TD>
    <TD width="2">:</TD>
    <TD><INPUT TYPE="text" SIZE="60" MAXLENGTH="240" NAME="type_art_andet" class="tekstfelt"></TD>
</TR>
</TABLE>

Jeg har så en validering som checker om der nu også er valgt en radioknap:

<script type="text/javascript">
// formular tjek start
function tjek_bestilling(){
var tjek = document.bestilling;

  var isChecked = false;
  for (var i=0; bestilling.type_art.length>i; i++) if (bestilling.type_art[i].checked == true) isChecked = true;
  if (!isChecked)
  {
    alert('Du skal oplyse anvendelse');
    return false;
  }
return (true);
}
</script>

Alt dette virker fint.

Hvordan udvider jeg denne validering således, at hvis man vælger radioknap nr. 4, så skal den checke om tekstfeltet også er udfyldt, ellers ikke.

Da opgaven haster lidt er der 200 point i puljen

/Goose
Avatar billede goose Nybegynder
04. maj 2006 - 11:33 #1
Det er selvfølgelig radioknap nr. 5 jeg mener, det er først ved denne at tekstfeltet bliver synligt.

/Goose
Avatar billede goose Nybegynder
04. maj 2006 - 12:07 #2
Lukker igen, fandt løsningen andet sted.

/Goose
Avatar billede goose Nybegynder
04. maj 2006 - 12:08 #3
Og løsningen for god ordens skyld:

if(bestilling.type_art_andet.value==""&&bestilling.type_art[4].checked){
    alert("Du skal oplyse ønsket anvendelse");
  bestilling.type_art_andet.focus();
    return (false);
}

/Goose
Avatar billede ldanielsen Nybegynder
04. maj 2006 - 12:09 #4
<script type="text/javascript">
// formular tjek start
function tjek_bestilling(){
var tjek = document.bestilling;

  var isChecked = false;
  var checkTekstfelt = false;
  for (var i=0; bestilling.type_art.length>i; i++) if (bestilling.type_art[i].checked == true){
    isChecked = true;
    if (i == 4) checkTekstfelt = true;
    }
  if (!isChecked)
  {
    alert('Du skal oplyse anvendelse');
    return false;
  }
  if (checkTekstfelt && bestilling.type_art_andet.value == "")
  {
    alert('Du skal oplyse anden anvendelse');
    return false;
  }

return (true);
}
</script>
Avatar billede ldanielsen Nybegynder
04. maj 2006 - 12:09 #5
:o)
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