Avatar billede johs_j Novice
07. oktober 2009 - 09:33 Der er 11 kommentarer og
1 løsning

Validering af form på hjemmeside

Jeg er ved at lave en form med forskellige felter + 2 CheckBox'er.

HTML koden ser sådan ud:
<body>
<h1>Testform</h1>
<script language="JavaScript" src="testform.js"></script>

<form method="POST" action="" onsubmit="return checkRequiredFields(this)">
Navn:    <input type="Text" name="navn" size="20"><p>
Adresse: <input type="Text" name="adresse" size="20"><p>
Postnr:  <input type="Text" name="postnr" size="4"><p>
By:      <input type="Text" name="by" size="20"><p>


Knap1: <input type="Checkbox" name="knap1" value=""><p>
knap2: <input type="Checkbox" name="knap2" value="">

<br>

<input type="submit" value="Send">
<input type="Reset" value="Slet">
</p>
</form>
</body>


Jeg har følgende script:
function checkRequiredFields(input) {
    var requiredFields = new Array("navn", "adresse", "postnr", "by", "knap1", "knap2");
    var fieldNames = new Array("Navn", "Adresse", "Postnr", "By", "Knap1", "Knap2");
   
    var fieldCheck = true;
    var fieldsNeeded ="\nAlle felter skal udfylles! \n\nUdfyld venligst de tomme felter:\n\n\t";

    for(var fieldNum=0; fieldNum < requiredFields.length; fieldNum++) {
        if ((input.elements[requiredFields[fieldNum]].value == "") ||
            (input.elements[requiredFields[fieldNum]].value == " ") ||
            (input.elements[requiredFields[4]].value == "")) {
            fieldsNeeded += fieldNames[fieldNum] + "\t" + fieldNum + "\n\t";
            fieldCheck = false;
            }
        }
        if (fieldCheck == true) {
        return true;
        }
    else {
        alert (fieldsNeeded);
        return false;
        }
}

Det virker også fint, untaget for de 2 chechbox'er.
Hvordan kan jeg checke om der er sat flueben i den ene, eller dem begge?

mvh
Johs_j
Avatar billede majbom Novice
07. oktober 2009 - 09:41 #1
hvis du nu sætter value til noget andet end "", så vil $_POST['knap1'] indeholde den value, hvis fluebenet er sat, ellers vil den være tom
Avatar billede johs_j Novice
07. oktober 2009 - 10:20 #2
>splazz
Jeg kan ikke lige se hvordan jeg skal skrive det i scriptet!
Avatar billede majbom Novice
07. oktober 2009 - 10:30 #3
Knap1: <input type="Checkbox" name="knap1" value=""><p>
knap2: <input type="Checkbox" name="knap2" value="">

rettes til:

Knap1: <input type="Checkbox" name="knap1" value="flueben"><p>
knap2: <input type="Checkbox" name="knap2" value="flueben">

f.eks.
Avatar billede johs_j Novice
07. oktober 2009 - 16:12 #4
>splazz
Den ændring får da ikke scriptet til at teste den.
Avatar billede majbom Novice
07. oktober 2009 - 17:43 #5
hvad vil du tjekke feltet for?

SKAL felterne være tjekket for at man kan fortsætte?
Avatar billede johs_j Novice
07. oktober 2009 - 22:20 #6
Scriptet skal checke at der sat et &#8730; i en af CheckBox'erne for at man kan fortsætte.
Avatar billede johs_j Novice
07. oktober 2009 - 22:21 #7
&#8730; = Flueben
Man kan åbenbart ikke skrive sådan et her.
Avatar billede majbom Novice
07. oktober 2009 - 22:35 #8
så der skal være flueben i begge felter før man kan fortsætte?
Avatar billede johs_j Novice
08. oktober 2009 - 13:11 #9
Der behøver kun at være flueben i den ene; men der må godt være i dem begge.
Avatar billede majbom Novice
08. oktober 2009 - 13:39 #10
prøv med:

function checkRequiredFields(input) {
    var requiredFields = new Array("navn", "adresse", "postnr", "by");
    var fieldNames = new Array("Navn", "Adresse", "Postnr", "By");
 
    var fieldCheck = true;
    var fieldsNeeded ="\nAlle felter skal udfylles! \n\nUdfyld venligst de tomme felter:\n\n\t";

    for(var fieldNum=0; fieldNum < requiredFields.length; fieldNum++) {
        if ((input.elements[requiredFields[fieldNum]].value == "") ||
            (input.elements[requiredFields[fieldNum]].value == " ") ||
            (input.elements[requiredFields[4]].value == "")) {
            fieldsNeeded += fieldNames[fieldNum] + "\t" + fieldNum + "\n\t";
            fieldCheck = false;
        }
    }
    if(document.getElementById('need_check').checked != 'checked'){
        fieldsNeeded += "Du skal sætte flueben i dette felt\n\t";
    }
    if (fieldCheck == true) {
        return true;
    } else {
        alert (fieldsNeeded);
        return false;
    }
}
Avatar billede johs_j Novice
08. oktober 2009 - 16:22 #11
>splazz
Har du fået det til at virke, for hos mig virker det ikke!!!
Avatar billede johs_j Novice
20. november 2009 - 10:41 #12
Jeg lukker
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

IT-JOB