Avatar billede Samson91 Nybegynder
13. december 2011 - 10:20 Der er 10 kommentarer og
1 løsning

Validering af radiobutton/dropdown

Hej
Jeg mangler lidt hjælp til flg. validering:
I dette script vil jeg gerne have valideret det således at hvis én af de 2 første radiobuttons er valgt, skal én af de 4 dropdowns vælges, ellers ikke.

<html>

<head>
<title>Radiobutton - dropdown</title>
</head>

<body>

<table>
  <tr>
    <td><form METHOD="POST" action="be_test.asp" onsubmit="return validateForm(this)">
      <table border="0">
        <tr>
          <td>Radiobutton</td>
          <td><input type="radio" value="1" name="gruppe"><input type="radio" name="gruppe"
          value="2"><input type="radio" name="gruppe" value="3"><input type="radio" name="gruppe"
          value="4"><input type="radio" name="gruppe" value="5"></td>
        </tr>
        <tr>
          <td>Test1</td>
          <td><select name="Test1" size="1">
            <option value="Vælg...">Vælg...</option>
            <option value="A">A</option>
            <option value="B">B</option>
          </select></td>
        </tr>
        <tr>
          <td>Test2</td>
          <td><select name="Test2" size="1">
            <option value="Vælg...">Vælg...</option>
            <option value="C">C</option>
            <option value="D">D</option>
          </select></td>
        </tr>
        <tr>
          <td>Test3</td>
          <td><select name="Test3" size="1">
            <option value="Vælg..">Vælg..</option>
            <option value="E">E</option>
            <option value="F">F</option>
          </select></td>
        </tr>
        <tr>
          <td>Test4</td>
          <td><select name="Test4" size="1">
            <option value="Vælg..">Vælg..</option>
            <option value="G">G</option>
            <option value="H">H</option>
          </select></td>
        </tr>
        <tr>
          <td valign="top"><input TYPE="submit" VALUE="Send" name="Send"></td>
        </tr>
      </table>
    </form>
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede DeeDawg Nybegynder
14. december 2011 - 08:59 #1
Hvis du forventer hjælp til det her, er du nok nødt til at skrive en mere præcis forklaring.

Det er ikke nemt at hjælpe dig når du bare siger, "at hvis en af de to første radiobuttons er valgt, skal en af de 4 dropdowns vælges, ellers ikke".

Det giver ingen mening. :)
Avatar billede Samson91 Nybegynder
14. december 2011 - 09:41 #2
Ok, jeg prøver at være lidt mere præcis:-)
Hvis radiobutten med  value="1" eller  value="2" er valgt i "gruppe", SKAL der vælges en af de nedenstående dropdowns, test1, test2, test3 eller test4.

Hvis radiobutton fra "gruppe" med value="3" value="4" eller value="5" er valgt, skal man ikke udfylde en dropdown.

Håber det er forståeligt
Avatar billede DeeDawg Nybegynder
14. december 2011 - 11:40 #3
Så skulle den gerne være der. ;)

<script type="text/javascript">
    function validateForm(form){
        var gruppe = form.gruppe;
        var test1 = form.Test1.value;
        var test2 = form.Test2.value;
        var test3 = form.Test3.value;
        var test4 = form.Test4.value;
       
        if(gruppe[0].checked || gruppe[1].checked){
            if((test1 || test2 || test3 || test4) == "Vælg..."){
                alert("Du skal vælge noget!");
                return false;
            }
        }
    }
</script>
Avatar billede Samson91 Nybegynder
14. december 2011 - 13:06 #4
Hej DeeDawg

Næsten perfekt, jeg fik vist ikke med at der også skal chekkes for at der i radiobutton "gruppe" SKAL vælges en af mulighederne.
Kan du også klare den?

Samson
Avatar billede DeeDawg Nybegynder
14. december 2011 - 14:13 #5
Selvfølgelig. Værsgod. :)

<script type="text/javascript">
    function validateForm(form){
        var gruppe = form.gruppe;
        var test1 = form.Test1.value;
        var test2 = form.Test2.value;
        var test3 = form.Test3.value;
        var test4 = form.Test4.value;
        var check = false;
               
        for(var i = 0;i < gruppe.length;i++){ if(gruppe[i].checked){ check = true; } }
       
        if(check){
            if(gruppe[0].checked || gruppe[1].checked){
                if((test1 || test2 || test3 || test4) == 0){
                    alert("Du skal vælge noget!");
                    return false;
                }
            }
        } else {
            alert("Du skal vælge en gruppe!");
            return false;
        }
    }
</script>
Avatar billede DeeDawg Nybegynder
14. december 2011 - 14:22 #6
Woops. En lille fejl.

if((test1 || test2 || test3 || test4) == 0){

Skal være:

if((test1 || test2 || test3 || test4) == "Vælg..."){
Avatar billede Samson91 Nybegynder
14. december 2011 - 15:08 #7
Helt perfekt! Og tusind tak, læg et svar så får du dine velfortjente point. God jul.
Avatar billede DeeDawg Nybegynder
14. december 2011 - 15:19 #8
Det var så lidt. Og god jul til dig også. ;)
Avatar billede Samson91 Nybegynder
19. december 2011 - 10:41 #9
Hej DeeDawg

Desværre var jeg lidt for hurtig til at teste, Det virker kun på første dropdown, hvis man vælger test2, test3, eller test4, får man - alert("Du skal vælge noget!"); og kommer ikke videre.

Kan du se hvad der mangler?

Samson
Avatar billede DeeDawg Nybegynder
22. december 2011 - 13:22 #10
Hm, det ser ud til jeg fik gjort det samme. Derudover fik jeg vist også overført metoder fra andre sprog, lol.

Beklager!

<script type="text/javascript">
    function validateForm(form){
        var gruppe = form.gruppe;
        var test1 = form.Test1.value;
        var test2 = form.Test2.value;
        var test3 = form.Test3.value;
        var test4 = form.Test4.value;
        var check = false;
       
        for(var i = 0;i < gruppe.length;i++){ if(gruppe[i].checked){ check = true; } }
       
        if(check){
            if(gruppe[0].checked || gruppe[1].checked){
                if(test1 == "Vælg..." && test2 == "Vælg..." && test3 == "Vælg..." && test4 == "Vælg..."){
                    alert("Du skal vælge noget!");
                    return false;
                }
            }
        } else {
            alert("Du skal vælge en gruppe!");
            return false;
        }
    }
</script>

Fortsat god jul. :)
Avatar billede Samson91 Nybegynder
22. december 2011 - 16:09 #11
Så var den der:-) Tak.
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