Avatar billede syswatch Novice
05. december 2006 - 10:12 Der er 6 kommentarer og
1 løsning

Validering af form med radio buttons

Hejsa derude...
Jeg kan simplethen bare ikke få det her l... til at virke.
Hvad har jeg lavet galt ?
(Dette står på en html side og ikke noget i <head>)

<script language="JavaScript">
function send() {
if (document.bedom.index1.value == "") {
alert("fejl");
return false;
};
if (document.bedom.index2.value == "") {
alert("fejl spm2");
return false;
};
if (document.bedom.index3.value == "") {
alert("fejl spm3");
return false;
};
return true;
}
</script>

<form name="bedom" method="post" action="index.php?s=addcomment">

        <table align="center" width="90%" border="0">
        <tr>
        <td width="45%" align="center">
            <b>spm1</b><br /><i>1 værst - 10 bedst.</i><br />
            <table align="center" border="0">
            <tr><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr>
            <tr><td><input type="radio" name="index1" value="1"></td><td><input type="radio" name="index1" value="2"></td><td><input type="radio" name="index1" value="3"></td><td><input type="radio" name="index1" value="4"></td><td><input type="radio" name="index1" value="5"></td><td><input type="radio" name="index1" value="6"></td><td><input type="radio" name="index1" value="7"></td><td><input type="radio" name="index1" value="8"></td><td><input type="radio" name="index1" value="9"></td><td><input type="radio" name="index1" value="10"></td></tr>
            </table>
        </td>
        <td width="45%" align="center">
            <b>spm2</b><br /><i>1 værst - 10 bedst.</i><br />
            <table align="center" border="0">
            <tr><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr>
            <tr><td><input type="radio" name="index2" value="1"></td><td><input type="radio" name="index2" value="2"></td><td><input type="radio" name="index2" value="3"></td><td><input type="radio" name="index2" value="4"></td><td><input type="radio" name="index2" value="5"></td><td><input type="radio" name="index2" value="6"></td><td><input type="radio" name="index2" value="7"></td><td><input type="radio" name="index2" value="8"></td><td><input type="radio" name="index2" value="9"></td><td><input type="radio" name="index2" value="10"></td></tr>
            </table>

        </td>
        </tr>
        <tr>
        <td width="45%" align="center">
            <br /><b>spm3</b><br /><i>1 værst - 10 bedst.</i><br />
            <table align="center" border="0">
            <tr><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr>
            <tr><td><input type="radio" name="index3" value="1"></td><td><input type="radio" name="index3" value="2"></td><td><input type="radio" name="index3" value="3"></td><td><input type="radio" name="index3" value="4"></td><td><input type="radio" name="index3" value="5"></td><td><input type="radio" name="index3" value="6"></td><td><input type="radio" name="index3" value="7"></td><td><input type="radio" name="index3" value="8"></td><td><input type="radio" name="index3" value="9"></td><td><input type="radio" name="index3" value="10"></td></tr>
            </table>
        </td>
        <td width="45%" align="center">
            <br /><b>spm4</b><br /><i>1 værst - 10 bedst.</i><br />
            <table align="center" border="0">
            <tr><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr>
            <tr><td><input type="radio" name="index4" value="1"></td><td><input type="radio" name="index4" value="2"></td><td><input type="radio" name="index4" value="3"></td><td><input type="radio" name="index4" value="4"></td><td><input type="radio" name="index4" value="5"></td><td><input type="radio" name="index4" value="6"></td><td><input type="radio" name="index4" value="7"></td><td><input type="radio" name="index4" value="8"></td><td><input type="radio" name="index4" value="9"></td><td><input type="radio" name="index4" value="10"></td></tr>
            </table>

        </td>
        </tr>
        <tr>
        <td width="45%" align="center">
            <br /><b>spm5</b><br /><i>1 værst - 10 bedst.</i><br />
            <table align="center" border="0">
            <tr><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr>
            <tr><td><input type="radio" name="index5" value="1"></td><td><input type="radio" name="index5" value="2"></td><td><input type="radio" name="index5" value="3"></td><td><input type="radio" name="index5" value="4"></td><td><input type="radio" name="index5" value="5"></td><td><input type="radio" name="index5" value="6"></td><td><input type="radio" name="index5" value="7"></td><td><input type="radio" name="index5" value="8"></td><td><input type="radio" name="index5" value="9"></td><td><input type="radio" name="index5" value="10"></td></tr>
            </table>
        </td>
        <td width="45%" align="center">
            <br /><b>spm6</b><br /><i>1 værst - 10 bedst.</i><br />
            <table align="center" border="0">
            <tr><td align="center">1</td><td align="center">2</td><td align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td align="center">10</td></tr>
            <tr><td><input type="radio" name="index6" value="1"></td><td><input type="radio" name="index6" value="2"></td><td><input type="radio" name="index6" value="3"></td><td><input type="radio" name="index6" value="4"></td><td><input type="radio" name="index6" value="5"></td><td><input type="radio" name="index6" value="6"></td><td><input type="radio" name="index6" value="7"></td><td><input type="radio" name="index6" value="8"></td><td><input type="radio" name="index6" value="9"></td><td><input type="radio" name="index6" value="10"></td></tr>
            </table>

        </td>
        </tr>
        </table>

<input type="submit" name="Send" value="Send" class="felter" onSubmit="return send(this)"></center>

</form>
Avatar billede olebole Juniormester
05. december 2006 - 10:38 #1
<ole>

Der er en del fejl. For det første, bør du lægge kaldet i formens onsubmit-handler (den findes ikke på knappen):
    <form name="bedom" method="post" action="index.php?s=addcomment" onSubmit="return send(this)">

Dernæst undrer det mig, du både bruger get og post i formen. Hvorfor sætter du en query-streng på action-dokumentet?

En radio-gruppe valideres som et array af elementer:

var a = document.bedom.index1;
var bChecked = false;
for (var i=0,j=a.length; i<j; i++) {
    if (a[i].checked) bChecked = true;
}
if (!bChecked) {
    alert("Du skal vælge mindst én");
    return false;
}

- og det skal du så gentage i funktionen for hver radio-gruppe.

En hel anden ting er, at denne form for scripting jo slet ikke er kompatibel med XHTML. Der skal du i stedet scripte op mod XML-DOM'en  ;o)

/mvh
</bole>
Avatar billede syswatch Novice
05. december 2006 - 10:50 #2
Jeg vil gerne have det sådan at den kommer med en fejl og fortæller hvilket spm man skal huske at besvare.
I din løsning vil man være i tvivl om hvilken man mangler at udfylde ?

XML-DOM ? Det ved jeg ikke engang hvad er ?
Avatar billede olebole Juniormester
05. december 2006 - 12:58 #3
Nej, det er du ikke i tvivl om  =)

function doDaShit() {
    var a = document.bedom.index1;
    var bChecked = false;
    for (var i=0,j=a.length; i<j; i++) {
        if (a[i].checked) bChecked = true;
    }
    if (!bChecked) {
        alert("Du skal vælge mindst én");
        return false;
    }

    a = document.bedom.index2;
    bChecked = false;
    for (var i=0,j=a.length; i<j; i++) {
        if (a[i].checked) bChecked = true;
    }
    if (!bChecked) {
        alert("Du skal vælge mindst én");
        return false;
    }

    a = document.bedom.index3;
    bChecked = false;
    for (var i=0,j=a.length; i<j; i++) {
        if (a[i].checked) bChecked = true;
    }
    if (!bChecked) {
        alert("Du skal vælge mindst én");
        return false;
    }
}
Avatar billede syswatch Novice
05. december 2006 - 17:55 #4
Hej olebole... har fået det til at virke som det skal.
Tak for hjælpen.. smider du et svar så jeg kan lukke ?
Avatar billede syswatch Novice
22. december 2006 - 13:10 #5
olebole... smider du et svar.. ? Tror det er lukketid.
Avatar billede olebole Juniormester
22. december 2006 - 13:32 #6
Okay ... God Jul  *<|;o)
Avatar billede olebole Juniormester
22. december 2006 - 13:33 #7
Ups  :)
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