Avatar billede faetter_br Nybegynder
02. januar 2003 - 11:01 Der er 10 kommentarer og
1 løsning

Validering af variabelt antal selectboxe...

Hej

Jeg har et variabelt antal selectboxe som jeg gerne validere, således at der ikke kan stå den samme værdi i flere af boxene.

<select name="nyraekkefolge[]" class="input" style="width: 35px;">
</select>

Hvordan gør jeg lige det??
Avatar billede faetter_br Nybegynder
02. januar 2003 - 11:05 #1
Glemte lige at sige, at antallet af <option></option> i disse boxes er lig med antallet af selectboxe.

Hvis der findes 3 selectboxe vil koden være

<select name="nyraekkefolge[]" class="input" style="width: 35px;">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
Avatar billede thomas_yde Nybegynder
02. januar 2003 - 12:21 #2
Du skal teste på om det er et array af tekstbokse.
if(nyraekkefolge[.length=="undefined"){
  return true;
}
else {
for(i=0;i<nyraekkefolge[.length;i++){
  value=nyraekkefolge[.value;
  for(j=i;nyraekkefolge[.length;j++){
    if(nyraekkefolge[[j].value==value){
      alert('Der er ens data i dine felter!');
      return false;
    }
  }
}
}

Jeg vil tror det er noget i den stil.
Avatar billede Slettet bruger
02. januar 2003 - 14:11 #3
Det er et meget uheldigt navn, du har valgt til dine selectbokse. JavaScript godtager normalt ikke navne, der består af andet end bogstaver fra a-z, tal og underscore. Det kan dog omgås, fx sådan her:

<html>
<head>
<script>
function tjek(frm) {
temp = ",";
for (i = 0; i < frm.elements.length; i++) {
if (frm.elements[i].type.indexOf("select") == 0) {
val = frm.elements[i].options[frm.elements[i].selectedIndex].value;
if (temp.indexOf("," + val) != -1) {
alert("Du må ikke vælge den samme værdi i to selectbokse!");
return false;
}
temp += "," + val;
}
}
return true;
}
</script>
</head>
<body>
<form onSubmit="return tjek(this);">
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select><br>
<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select><br><select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select><br><select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select><br><select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select><br>
<input type="submit" value="Send">
</form>
</body>
</html>
Avatar billede faetter_br Nybegynder
02. januar 2003 - 14:16 #4
Hov!! Der er vist sneget sig en fejl ind i navnet på min select boks, den hedder: nyraekkefolge[]
Avatar billede Slettet bruger
02. januar 2003 - 14:20 #5
Det er ligegyldigt.
Avatar billede faetter_br Nybegynder
02. januar 2003 - 14:28 #6
Det virker jo helt perfekt....

TAK
Avatar billede thomas_yde Nybegynder
02. januar 2003 - 14:53 #7
Det er en smart nok metode. Hvis du navnet var normalt ville min kunen bruges så phoenixv?
Avatar billede thomas_yde Nybegynder
02. januar 2003 - 14:54 #8
suk staveplade til mig.

update:
"Det er en smart nok metode. Hvis nu navnet var normalt ville min metode så kunne være blevet brugt phoenixv?"
Avatar billede Slettet bruger
03. januar 2003 - 12:14 #9
Nej, du roder lidt med logikken... Men du har da fat i noget af det rigtige! :)

JavaScript tillader i øvrigt heller ikke, at to elementer har det samme navn eller den samme id (bortset fra radio-buttons).
Avatar billede thomas_yde Nybegynder
03. januar 2003 - 17:59 #10
ah radio buttons laver så et array ?
Avatar billede Slettet bruger
04. januar 2003 - 14:45 #11
Ja.
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