Avatar billede hansen Nybegynder
20. oktober 2004 - 09:10 Der er 5 kommentarer

Udfyld enten input eller selct felt

Jeg har brug for lidt hjælp her.
jeg har en formular der indeholder tre felter:
valg0 (input) skal altid udfyldes
Enten valg1 (input) eller valg2 (select) skal udfyldes/vælges, det er kun et af felterne der må indeholde en værdi.

Her er koden, kan du hjælpe mig med et valideringsscript?

---
<form method="POST" action="">
    <input type="text" name="valg0" size="20" value="Angiv tekst"><br>
    <input type="text" name="valg1" size="20" value="Angiv tekst"><br>
    <select size="1" name="valg2">
    <option selected>-</option>
    <option value="Valg 1">Valg 1</option>
    <option value="Valg 2">Valg 2</option>
    </select><br>
    <input type="submit" value="Send" name="B1">
</form>
---
Avatar billede nikolajdu Nybegynder
20. oktober 2004 - 09:58 #1
i den her dur?

    <script type="text/javascript">
   
    function valider(f){
        if(f.valg0.value == "Angiv tekst" || f.valg0.value == ""){
            alert("valg 0 tom");
            f.valg0.focus();
            return false;
        }
        if(f.valg2[f.valg2.selectedIndex].text != "-"){
        alert("sel ikke tom");
            f.valg1.value = "" // "Angiv tekst";
            return false;
            }else if(f.valg1.value == "Angiv tekst" || f.valg1.value == ""){
                alert("valg 1 tom");
                f.valg0.focus();
                return false;
            }
        return true;
    }
   
    </script>
</head>

<body>

<form method="POST" action="" onsubmit="return valider(this)">
Avatar billede hansen Nybegynder
20. oktober 2004 - 10:27 #2
Ikke helt.
Det ser ud som om at din ikke helt kører endnu, når jeg vælger noget i valg0 og i valg2 så siger den at "sel ikke tom"

Felt valg1 eller valg2 skal bare indeholde noget, men kun et af dem. hvis der er noget i begge felter skal den lave en alert og fortælle f.eks. at der kun kan være en værdi i en af felterne.
Avatar billede hansen Nybegynder
20. oktober 2004 - 12:16 #3
Et lille tilvalgs spørgsmål, er det muligt at begge felter hedder det samme, altså at både valg1 og valg2 hedder valg1 istedet for og så stadigvæk kunne validere på det ?
Avatar billede nikolajdu Nybegynder
20. oktober 2004 - 12:32 #4
når jeg vælger noget i valg0 og i valg2 så siger den at "sel ikke tom" - ja for du har jo valgt nogeet i selectboksen ;-)

    <script type="text/javascript">
   
    function valider(f){
        if(f.valg0.value == "Angiv tekst" || f.valg0.value == ""){
            alert("valg 0 tom");
            f.valg0.focus();
            return false;
        }
        if(f.valg2[f.valg2.selectedIndex].text == "-"){
            return true;
            }else if(f.valg1.value == "Angiv tekst" || f.valg1.value == ""){
                alert("valg 1 tom");
                f.valg0.focus();
                return false;
            }
        return true;
    }
   
    </script>

Tillægsspørgsmål - nej de må ikke hedde det samme.
Avatar billede roenving Novice
20. oktober 2004 - 14:45 #5
Form-elementer kan da glimrende hedde det samme, men det er kun smart, hvis de også har samme type ...

Måske på denne måde:

<script type="text/javascript">
function valider(f){
  if(f.valg0.value==f.valg0.defaultValue||f.valg0.value==''){
    alert('Du skal udfylde valg0 !-)');
    f.valg0.focus();
    return false;
  }
  if((f.valg1.value==f.valg1.defaultValue||f.valg1.value=='')&&f.valg2.selectedIndex==0){
    alert('Du skal udfylde enten valg1 eller valg2 !-)');
    f.valg1.focus();
    return false;
  }
  return true;
}
</script>
<form method="POST" action="" onsubmit="return valider(this);">
    <input type="text" name="valg0" size="20" value="Angiv tekst" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"><br>
    <input type="text" name="valg1" size="20" value="Angiv tekst" onkeyup="this.form.valg2.disabled=(this.value!='')" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"><br>
    <select size="1" name="valg2" onchange="this.form.valg1.disabled=(this.selectedIndex>0)">
    <option selected>-</option>
    <option value="Valg 1">Valg 1</option>
    <option value="Valg 2">Valg 2</option>
    </select><br>
    <input type="submit" value="Send" name="B1">
</form>
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