Avatar billede hansen Nybegynder
27. juni 2005 - 15:08 Der er 5 kommentarer og
2 løsninger

Valider på checkbokse - lidt speciel

Håber der er en der har lidt tid til at hjælpe mig her.
Jeg har nedenstående kode hvor der som minimum skal krydses et felt af, der er ingen øvre maks.

Alle felter hedder det samme da jeg efterfølgende samler dem til et array, hvordan tjekker jeg for et kryds ?

HTML kode start ---
<form method="POST" action="xxx.asp" name="form">
<table border="0" cellpadding="2" width="100%" id="table1" style="border-collapse: collapse">
    <tr>
        <td>
        <input style="padding: 3px" type="checkbox" name="category" value="4"> Student</td>
    </tr>
    <tr>
        <td>
        <input style="padding: 3px" type="checkbox" name="category" value="5"> Professional</td>
    </tr>
    <tr>
        <td>
        <input style="padding: 3px" type="checkbox" name="category" value="6"> Tourist</td>
    </tr>
    <tr>
        <td>
        <input style="padding: 3px" type="checkbox" name="category" value="1"> Artist</td>
    </tr>
    <tr>
        <td>
        <input style="padding: 3px" type="checkbox" name="category" value="3"> Design</td>
    </tr>
    <tr>
        <td height="18" width="30%" valign="top"><input type="button" value="Opret HTML kode" name="make" ></td>
        <td width="70" valign="top"></td>
    </tr>
</table>
</form>
HTML kodestop ---
Avatar billede goose Nybegynder
27. juni 2005 - 15:18 #1
Jeg har tidligere stillet samme spørgsmål, se løsningen her:

http://www.eksperten.dk/spm/598932

/Goose
Avatar billede hansen Nybegynder
27. juni 2005 - 15:27 #2
Hej Goose
Jeg prøve at sætte det ind på min form, dog uden det store held :-(
Der bliver ikke valideret på noget !

Jeg rettede Scriptdelen til dette :

<script language="JavaScript">
function checkCat(frm){
var chks = frm.category;
for(i=0;chks.length>i;i++){
  if(cks[i].checked)
    return true;
}
alert('Du skal vælge mindst een kategori');
chks[0].focus();
return false;
}
</script>

og satte  onsubmit="return checkCat(this);" ind i mit startform tag.

Har du et sted dit virker ?
Avatar billede softspot Forsker
27. juni 2005 - 15:59 #3
Kan det være fordi du refererer til en variabel der ikke er defineret i din løkke...?

for(i=0;chks.length>i;i++){
  if(cks[i].checked)
    return true;
}

cks skal vel være chks - eller hvad?
Avatar billede goose Nybegynder
27. juni 2005 - 16:07 #4
Den her virker:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1//EN">
<HTML>
<HEAD>
    <TITLE></TITLE>
<script language="JavaScript">
function checkCat(frm){
var chks = frm.category;
for(i=0;chks.length>i;i++){
  if(chks[i].checked)
    return true;
}
alert('Du skal vælge mindst een brochure');
chks[0].focus();
return false;
}
</script>


</HEAD>
<BODY>

<form method="POST" action="xxx.asp" onsubmit="return checkCat(this);">
<input type="checkbox" value="4" name="category"> Student<BR>
<input type="checkbox" value="5" name="category"> Professionel<BR>
<input type="checkbox" value="6" name="category"> Tourist<BR>
<input type="checkbox" value="1" name="category"> Artist<BR>
<input type="checkbox" value="3" name="category"> Design<BR>
<INPUT TYPE="submit" VALUE="Opret HTML kode">
</form>


</BODY>
</HTML>

/Goose
Avatar billede goose Nybegynder
27. juni 2005 - 16:14 #5
Prøv lige og ret:

<input type="button" value="Opret HTML kode" name="make">

til:

<input type="submit" value="Opret HTML kode" name="make">

- og som softspot skriver skal der stå chks og ikke cks

Problemet er at du ikke havde indsat en submit men blot lavet en knap.

/Goose
Avatar billede hansen Nybegynder
28. juni 2005 - 08:27 #6
Takker begge, fordeler pointene en lille smule
Avatar billede softspot Forsker
28. juni 2005 - 14:04 #7
Takker for point :)
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