Avatar billede Morten Nybegynder
17. oktober 2005 - 11:08 Der er 18 kommentarer og
1 løsning

Tjek radiogroup

Hej

Jeg har ledt efter et script (simpelt tror jeg) - men da jeg aner MINUS om javascript har jeg svært ved at rette dem til så de passer.

Her er formen hvor det "eneste" jeg ønsker er at tjekke om en af de tre radiobuttons er valgt og hvis ikke skal den hvis en meddelelse om at de skal afkrydses og den skal så selvfølelig ikke submitte - hvis en af de tre er udfyldt skal den returner true og submitte....

Form:<table>
    <tr>
        <form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post" name="folder">
            <td>
                <input name="singlefile" type="file" class="inputUp" size="40">
                <label class="inputUp">
                    <input type="radio" name="path" value="nysalg" class="inputUp">
                        Nysalg
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="service" class="inputUp">
                        Service
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="andet" class="inputUp">
                        Andet
                </label>
                <input name="upvalue" type="hidden" value="1">
                <input type="submit" value="Gem fil" id="submit">
            </td>
        </form>
    </tr>
</table>


HJÆLP HJÆLP HJÆLP
Avatar billede Morten Nybegynder
17. oktober 2005 - 11:08 #1
skal den hvis en meddelelse = skal den VISE en meddelelse
Avatar billede thomas_yde Nybegynder
17. oktober 2005 - 11:44 #2
prøv evt det her:

<script type="text/javascript">
function checkRadio(form){
a_Rad = form.getElementsByTagName("INPUT");
for(i=0;i<a_Rad.length;i++){
  if(a_Rad[i].type=="radio"){
    if(a_Rad[i].checked)
      return true;
  }
}
alert("Du mangler at marker en knap i formen");
return false;
}
</script>

<table>
    <tr>
        <form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post" name="folder" onSubmit="return checkRadio(this);">

            <td>
                <input name="singlefile" type="file" class="inputUp" size="40">
                <label class="inputUp">
                    <input type="radio" name="path" value="nysalg" class="inputUp">
                        Nysalg
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="service" class="inputUp">
                        Service
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="andet" class="inputUp">
                        Andet
                </label>
                <input name="upvalue" type="hidden" value="1">
                <input type="submit" value="Gem fil" id="submit">
            </td>
        </form>
    </tr>
</table>
Avatar billede Morten Nybegynder
17. oktober 2005 - 11:56 #3
Skal et javascript ligge i headeren - eller kan jeg have det umiddelbart over formen?
Avatar billede Morten Nybegynder
17. oktober 2005 - 12:01 #4
Det virker ikke - den uploader uanset om der er markeret i checkbox eller ej.

Har prøvet at placerer scriptet både i header og body - med samme resultat.

Det er det samme jeg har oplevet med de andre script jeg har fundet her, enten returnerer den False hele tiden eller også returnerer den true..... ?????
Avatar billede Morten Nybegynder
17. oktober 2005 - 12:03 #5
Nu satte jeg en alert på true delen og den kommer heller ikke frem - det tyder vel på at den slet ikke kører scriptet eller?
Avatar billede thomas_yde Nybegynder
17. oktober 2005 - 12:10 #6
prøv at tage en viewsource på det du har fået, og klip det ind her .
Hele siden.
Avatar billede softspot Forsker
17. oktober 2005 - 12:15 #7
Hvad sker der hvis du udskifter script-delen med:

<script type="text/javascript">
function checkRadio(frm){
  var a_Rad = frm.elements;
  for(i=0; i<a_Rad.length; i++){
    if(a_Rad[i].tagName=="input" && a_Rad[i].type=="radio"){
      if(a_Rad[i].checked)
        return true;
    }
  }
  alert("Du mangler at marker en knap i formen");
  return false;
}
</script>
Avatar billede thomas_yde Nybegynder
17. oktober 2005 - 12:17 #8
cddk: lige en lille ting. Nu har du vel husket at tilføje: onSubmit="return checkRadio(this);" i formen?
Avatar billede Morten Nybegynder
17. oktober 2005 - 12:36 #9
Jo - du får lige det hele....:


<script type="text/javascript">
function checkRadio(form){
a_Rad = form.getElementsByTagName("INPUT");
for(i=0;i<a_Rad.length;i++){
  if(a_Rad[i].type=="radio"){
    if(a_Rad[i].checked)
        alert("Der uploades");
          return true;
  }
}
alert("Du skal vælge hvilken mappe du ønsker at uploade til!");
return false;
}
</script>


<table>
    <tr>
        <form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post" name="folder" onSubmit="return checkRadio(this);">
            <td>
                <input name="singlefile" type="file" class="inputUp" size="40">
                <label class="inputUp">
                    <input type="radio" name="path" value="nysalg" class="inputUp">
                        Nysalg
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="service" class="inputUp">
                        Service
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="andet" class="inputUp">
                        Andet
                </label>
                <input name="upvalue" type="hidden" value="1">
                <input type="submit" value="Gem fil" id="submit">
            </td>
        </form>
    </tr>
</table>
Avatar billede Morten Nybegynder
17. oktober 2005 - 12:37 #10
Viewsource:

<script type="text/javascript">
function checkRadio(form){
a_Rad = form.getElementsByTagName("INPUT");
for(i=0;i<a_Rad.length;i++){
  if(a_Rad[i].type=="radio"){
    if(a_Rad[i].checked)
        alert("Der uploades");
          return true;
  }
}
alert("Du skal vælge hvilken mappe du ønsker at uploade til!");
return false;
}
</script>


<table>
    <tr>
        <form enctype="multipart/form-data" action="/customer_info/customer_info_basis.php" method="post" name="folder" onSubmit="return checkRadio(this);">
            <td>
                <input name="singlefile" type="file" class="inputUp" size="40">
                <label class="inputUp">
                    <input type="radio" name="path" value="nysalg" class="inputUp">
                        Nysalg
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="service" class="inputUp">
                        Service
                </label>
                <label class="inputUp">
                    <input type="radio" name="path" value="andet" class="inputUp">
                        Andet
                </label>
                <input name="upvalue" type="hidden" value="1">
                <input type="submit" value="Gem fil" id="submit">
            </td>
        </form>
    </tr>
</table>
Avatar billede softspot Forsker
17. oktober 2005 - 12:38 #11
cddk >> prøv lige den version jeg postede...
Avatar billede Morten Nybegynder
17. oktober 2005 - 12:39 #12
>>>> Softspot:

Så giver den mig "False" uanset om der er mærkeret eller ej...
Avatar billede thomas_yde Nybegynder
17. oktober 2005 - 12:40 #13
Tjaa du har lige været inde og redigere lidt i den kan jeg se :-)

slet script tag og erstat med det her:
<script type="text/javascript">
function checkRadio(form){
a_Rad = form.getElementsByTagName("INPUT");
for(i=0;i<a_Rad.length;i++){
  if(a_Rad[i].type=="radio"){
    if(a_Rad[i].checked){
        alert("Der uploades");
          return true;
    }
  }
}
alert("Du skal vælge hvilken mappe du ønsker at uploade til!");
return false;
}
</script>
Avatar billede Morten Nybegynder
17. oktober 2005 - 12:42 #14
Hvad har jeg retteT ??

FOR NU VIRKER L.... - JUHUUUUUUUUUU

Forklar..
Avatar billede softspot Forsker
17. oktober 2005 - 12:44 #15
Så prøv denne i stedet (hvis thomas' rettelse ikke virker hos dig):

<script type="text/javascript">
function checkRadio(frm){
  var a_Rad = frm.elements;
  for(i=0; i<a_Rad.length; i++){
    if(a_Rad[i].tagName.toLowerCase()=="input" && a_Rad[i].type=="radio"){
      if(a_Rad[i].checked)
        return true;
    }
  }
  alert("Du mangler at marker en knap i formen");
  return false;
}
</script>
Avatar billede softspot Forsker
17. oktober 2005 - 12:44 #16
OK... :)
Avatar billede Morten Nybegynder
17. oktober 2005 - 12:46 #17
Kan du så ikke også lige hjælpe mig med:

http://www.eksperten.dk/spm/656008
Avatar billede thomas_yde Nybegynder
17. oktober 2005 - 12:54 #18
Du havde tilføjet en alert efter en IF sætning. hvilket betyder at der nu skulle {} efter.
Lidt forklaring:
"if(condition) doSomething;"
- her bliver condition undersøgt og hvis det opfylder kravene bliver doSomething udført.

men hvis du laver:
if(condition)
doSometing;
doThisAlso;

Så vil doSomething blive udført hvis condition er sand, men doThisAlso vil altid blive udført da den ikke er med i if syntaxen.

Hvis du vil have dem begge med i if skal vi indkapsle det med {}:
if(condition){
doSomting;
doThisAlso;
}

Så vil de 2 kun blive udført hvis condition er sand.

Da du havde tilføjet den ekstra linje ville den altid returnere true, hvis der var en input der havde typen radio :-)
Avatar billede roenving Novice
17. oktober 2005 - 17:01 #19
PS. Hvis du vil ændre point-tallet i et spørgsmål, kan du under Funktioner oppe til venstre finde 'Afsæt flere point', hvis spørgsmålet ikke er lukket !-)
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