Avatar billede Hans1 Praktikant
24. marts 2011 - 13:32 Der er 9 kommentarer og
1 løsning

Validering af select boks

Hej

Jeg bruger denne kode til at validere to select bokse.
Den udskriver hvis der ikke er valgt noget i begge bokse samt at der ikke er valgt noget i boks 2 hvis boks 1 er valgt.

Men hvis boks 1 ikke er valgt og boks 2 er valgt så udskriver den at begge ikke er valgt.




<div id="div2" style="display:none">boks 2 er ikke valgt</div>
<div id="div3" style="display:none">Boks 1 er ikke valgt</div>


<form action="" method="post" onsubmit="validering();return false;">
<select name="selectboksnavn">
<option value="">1</option>
<option value="1">1.1</option>
<option value="2">1.2</option>
<option value="3">1.3</option>
<option value="4">1.4</option>
<option value="5">1.5</option>
</select>

<select name="selectboksnavn2">
<option value="">2</option>
<option value="1">2.1</option>
<option value="2">2.2</option>
<option value="3">2.3</option>
<option value="4">2.4</option>
<option value="5">2.5</option>
</select>


<input type="submit" value="Klik her for at validere">
</form>

||



<script type="text/javascript">
function validering()
  {
  error = 0;
 
if((document.forms[0].selectboksnavn.value=='') && (document.forms[0].selectboksnavn2.value=='') && (error==0)) 
  {       

var div3 = document.getElementById('div3')
div3.style.display = 'block'
var div2 = document.getElementById('div2')
div2.style.display = 'block' 
error = 1;


}if ((document.forms[0].selectboksnavn2.value=='') && (error==0))
{
var div2 = document.getElementById('div2')
div2.style.display = 'block'
error = 1;


}if ((document.forms[0].selectboksnavn.value=='') && (error==0)) 
 
{       

var div3 = document.getElementById('div3')
div3.style.display = 'block'

    error = 1;

}

   
if(error == 0)
  document.forms[0].submit();   
  }

// Slut -->
</script>
Avatar billede claes57 Ekspert
24. marts 2011 - 14:53 #1
du skal lave noget som dette:
hvis boks1 = "" så {
  hvis boks2 = "" så {
      begge er tomme }
  ellers {
      kun boks1 er tom }
ellers {
  hvis boks2 = "" {
      kun boks2 er tom}
}
'begge er ok
Avatar billede Hans1 Praktikant
24. marts 2011 - 15:07 #2
dvs jeg skal lave en if boks2 inde i en if boks 1?
Og if boks 1 slutter så ved den sidste } over begge er ok?
Avatar billede claes57 Ekspert
24. marts 2011 - 15:15 #3
det bliver den kode, der er lettest at overse (synes jeg).
Avatar billede Hans1 Praktikant
24. marts 2011 - 15:32 #4
Jeg kan ikke lige få det til at virke hmmm
Avatar billede claes57 Ekspert
24. marts 2011 - 16:03 #5
function validering()

if (document.forms[0].selectboksnavn.value==''){
  if (document.forms[0].selectboksnavn2.value=='') {
    //begge er tomme
  } else {
    //kun 1 er tom
  }
} else {
  if (document.forms[0].selectboksnavn2.value=='') {
      //kun 2 er tom
  else {
      // alt ok
      document.forms[0].submit();
  }
}
Avatar billede Hans1 Praktikant
24. marts 2011 - 19:57 #6
Hmm nu har jeg så prøvet sådan her.
Men med denne kode virker det kun hvis ingen af det er valgt.


function validering()
  {
error = 0;

if ((document.forms[0].selectboksnavn.value=='') && (error==0)) {
if ((document.forms[0].selectboksnavn2.value=='') && (error==0)) {
    document.getElementById('element').style.display = 'block';
  document.getElementById('element2').style.display = 'block';
error = 1;

} else {
    document.getElementById('element').style.display = 'block';
error = 1;
}
}else {
  if ((document.forms[0].selectboksnavn2.value=='') && (error==0)) {
      document.getElementById('element2').style.display = 'block8';

error = 1; 

} else {
     
  if(error == 0)
  document.forms[0].submit();
  }
}
}




[/div]
Avatar billede claes57 Ekspert
25. marts 2011 - 20:46 #7
hvorfor i al verden bliver du ved med den error=xx - den skal ikke bruges - den laver intet. Du indfører bare en ting, som ikke har noget virkning udover at forvirre kode.
prøv med

function validering() {
if (document.forms[0].selectboksnavn.value=='') {
  if (document.forms[0].selectboksnavn2.value=='') {
    document.getElementById('element').style.display = 'block';
    document.getElementById('element2').style.display = 'block';
  } else {
    document.getElementById('element').style.display = 'block';
  }
}else {
  if (document.forms[0].selectboksnavn2.value=='') {
    document.getElementById('element2').style.display = 'block';
  } else {
    document.forms[0].submit();
  }
}
Avatar billede Hans1 Praktikant
26. marts 2011 - 09:59 #8
Tak claes det viker perfekt nu...
Der manglede ogsÅ lige den sidste } så funktionen blev lukket korrekt.

Smid et svar.
Avatar billede claes57 Ekspert
26. marts 2011 - 13:32 #9
ok...
Avatar billede Hans1 Praktikant
26. marts 2011 - 16:22 #10
Hmm den virker ikke hvis man først trykker på send.
Og så kun vælger en.

Så udskriver den stadig 2
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