Avatar billede d797fni Nybegynder
25. februar 2004 - 12:39 Der er 11 kommentarer og
1 løsning

Valider select multiple size=4

Hvordan validerer jeg en <select .... size=4 multiple> ?

Jeg får en fejl her:

else if(e.tagName == 'SELECT')
{
if(e.options(e.selectedIndex).value == '')
{
alert('Please specify the required field(s).');
e.focus();
return;
}

På følgende i htmlfilen:

<select required='yes' class="LONG" id="ra_doc_keywords_temp" name="ra_doc_keywords_temp" size="4" multiple>
</select>


Fejlen er

Exception occurred
Avatar billede roenving Novice
25. februar 2004 - 12:46 #1
if(e.options[e.selectedIndex].value == '')

-- du skal bruge [] til array-index ...
Avatar billede d797fni Nybegynder
25. februar 2004 - 12:50 #2
Jeg får fejl:

Object doesn't support this property or method
Avatar billede d797fni Nybegynder
25. februar 2004 - 12:51 #3
Den bruges også til at fange fejl i flg.

<select required='yes' id="ou_2" name="sa_doc_ou">
<option value=""></option>
<option value="D01">D01</option>
<option value="D02">D02</option>
Avatar billede roenving Novice
25. februar 2004 - 13:01 #4
Måske

if(e.selectedIndex>=0)

-- og i en multi-select, vil selectedIndex kun afspejle den første valgte, men det er vel ligegyldigt her !-)
Avatar billede d797fni Nybegynder
25. februar 2004 - 13:08 #5
stadig problemer.....(jeg skal sige at det er et "arvet" script, som jeg skal lave lidt om på)

de andre <select> giver værdien 0 når intet er valgt. Jeg får -1 fra select multiple size=4 feltet, også når jeg vælger noget..
Avatar billede d797fni Nybegynder
25. februar 2004 - 13:10 #6
ok, når jeg highlighter en værdi i feltet, så får jeg en værdi.....men menigen er jo at den skal fange fejl når feltet er tomt
Avatar billede roenving Novice
25. februar 2004 - 13:11 #7
Så må du teste alle options:

selE = false;
for(i=0;e.length>i;i++){
  if(e.options[i].selected){
    selE = true;
    break;
  }
}
if(!selE){
Avatar billede d797fni Nybegynder
25. februar 2004 - 13:16 #8
ahhhh, måske kan jeg e.length......lave en "if" der spørg om det er netop det felt også se om e.length==0
Avatar billede d797fni Nybegynder
25. februar 2004 - 14:50 #9
Sådan blev det løst:

if(e.size > 0 && e.length==0)
{   
alert('Please specify the required field(s).');
e.focus();
return;
}
           
if(e.size == 0 && e.options(e.selectedIndex).value == '')
{
alert('Please specify the required field(s).');
e.focus();
return;
}
Avatar billede d797fni Nybegynder
25. februar 2004 - 14:50 #10
et svar roenving?
Avatar billede roenving Novice
25. februar 2004 - 15:22 #11
Oki '-)
Avatar billede roenving Novice
28. februar 2004 - 03:22 #12
-- og tak for points ;~}
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