Avatar billede Morten Nybegynder
14. oktober 2005 - 11:47 Der er 26 kommentarer og
1 løsning

Tjek om input text er udfyldt hvis

Hej

jeg ved - om java script - kan finde dem og indsætte dem i min kode.

Men nu har jeg brug for et lille script som kan tjekke at en inputbox er udfyldt/valg et element i den HVIS der er valgt en fil i en anden box - her er et udpluk fra min form:

                <form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post">
                    <table>
                        <tr>
                            <td align="left">
                                V&aelig;lg en eller flere filer til upload:<br>
                                <input name="upfile[]" type="file" size="60">
                                <select name="path0">
                                    <option></option>
                                    <option>Salg_Montage</option>
                                    <option>Reklamation</option>
                                    <option>Claim</option>
                                </select><br>
                                <input name="upfile[]" type="file" size="60">
                                <select name="path1">
                                    <option></option>
                                    <option>Salg_Montage</option>
                                    <option>Reklamation</option>
                                    <option>Claim</option>
                                </select><br>

Det der skal ske er altså at jeg skal tjekke om der er valgt noget i path# selecten HVIS der er valgt en fil i upfile[]..

Og hvis ikke skal den smide en alert box.

Kan det lade sig gøre (kan det sikkert) og er der nogen som vil hjælpe...???
Avatar billede mm12010 Nybegynder
14. oktober 2005 - 12:18 #1
<form ... onsubmit="return tjeckValg(this);">

function tjeckValg(frm){
  if(frm.elements["upfile[]"].value!=""&&frm.path0.selectedIndex==0){
    alert("FEJL...");
    return false;
  }
  return true;
}


det er fremgangsmåden men, du er nød til give dine file-felter forskellige navne...
Avatar billede softspot Forsker
14. oktober 2005 - 12:29 #2
Hvorfor? Man kan da godt gennemløbe felter med samme navn... eller er det en PHP-problemstilling?
Avatar billede softspot Forsker
14. oktober 2005 - 12:31 #3
...det ville dog måske være en fordel også at kalde alle sine select-elementer det samme.
Avatar billede Morten Nybegynder
14. oktober 2005 - 12:38 #4
jeg tror file-felter får et nummer ... via[] men jeg prøver lige så hører i
Avatar billede roenving Novice
14. oktober 2005 - 14:51 #5
<script type="text/javascript">
function valider(f){
  var e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].type == 'file' && e[i].value != "" && e[i+1].type == 'select' && e[i+1].sellectedIndex == 0){
      alert('Du skal vælge type !-)
      e[i+1].focus();
      return false;
    }
  }
  return true;
}
</script>

-- og i formen skal du:

<form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post" onsubmit="return valider(this);">

-- der må så ikke forekomme en file-input uden en select umiddelbart efter !-)
Avatar billede roenving Novice
14. oktober 2005 - 14:52 #6
Hov, alert-linjen skal selvfølgelig skrives færdig:

      alert('Du skal vælge type !-)');
Avatar billede Morten Nybegynder
17. oktober 2005 - 09:06 #7
Øhhh hvis det nu er en radio-group den skal tjekke på er det så ikke samme kode eller?


Uddrag af form:

<form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post" onclick="return valider(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>
??
Avatar billede Morten Nybegynder
17. oktober 2005 - 10:21 #8
Glem 17/10-2005 09:06:09 - jeg opretter nyt spørgsmål til den...

Vender tilbage når jeg har testet dit forslag her...
Avatar billede roenving Novice
17. oktober 2005 - 16:22 #9
-- og der var en tavetosse:

...

  for(i=0;e.length>i;i++){
    if(e[i].type == 'file' && e[i].value != "" && e[i+1].type == 'select' && e[i+1].selectedIndex == 0){
      alert('Du skal vælge type !-)');

...

-- og en radio-gruppe skal testes på en helt anden måde, da man skal løbe dem igennem enkeltvis, så det bliver kodemæssigt meget mere kompliceret !-)
Avatar billede Morten Nybegynder
17. oktober 2005 - 19:16 #10
Og den med radio-gruppen har jeg fået løst her http://www.eksperten.dk/spm/656683 - dog er der kun en fil...

Øhhh du skriver noget om point i ovenstående spørgsmål???

Jeg tester din seneste lidt senere i aften....
Avatar billede Morten Nybegynder
17. oktober 2005 - 19:40 #11
Det virker stadig ikke...

<script type="text/javascript">
function valider(f){
  var e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].type == 'file' && e[i].value != "" && e[i+1].type == 'select' && e[i+1].selectedIndex == 0){
      alert('Du skal vælge type!');
      e[i+1].focus();
      return false;
    }
  }
  return true;
}
</script>

    <center>
            <form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post" onsubmit="return valider(this);">
Avatar billede Morten Nybegynder
20. oktober 2005 - 00:17 #12
Hello roenving - nogle forslag???
Avatar billede roenving Novice
20. oktober 2005 - 00:28 #13
Hvad gør den forkert ?-)
Avatar billede Morten Nybegynder
20. oktober 2005 - 00:36 #14
Den uploader selvom der ikke er valgt noget i selectboxen.... og også når der er...
Avatar billede roenving Novice
20. oktober 2005 - 00:42 #15
-- og formen opfylder stadig de forudsætninger om, at der kun forekommer file-inputs, når det næste form-element er en select-boks ?-)

-- prøv at linke til et eksempel !-)
Avatar billede Morten Nybegynder
20. oktober 2005 - 00:44 #16
Det ligger på et intranet så det kan jeg desværre ikke - men du kan få script og hele formen her:

<script type="text/javascript">
function valider(f){
  var e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].type == 'file' && e[i].value != "" && e[i+1].type == 'select' && e[i+1].selectedIndex == 0){
      alert('Du skal vælge type!');
      e[i+1].focus();
      return false;
    }
  }
  return true;
}
</script>


    <center>
            <form enctype="multipart/form-data" action="<? echo $_SERVER["PHP_SELF"] ?>" method="post" onsubmit="return valider(this);">
                <table>
                    <tr>
                        <td align="left">
                            V&aelig;lg en eller flere filer til upload:<br>
                            <input name="upfile[]" type="file" size="60" class="inputUp">
                            <select name="path0" class="inputUp">
                                <option></option>
                                <option>Salg_Montage</option>
                                <option>Reklamation</option>
                                <option>Claim</option>
                            </select><br>
                            <input name="upfile[]" type="file" size="60" class="inputUp">
                            <select name="path1" class="inputUp">
                                <option></option>
                                <option>Salg_Montage</option>
                                <option>Reklamation</option>
                                <option>Claim</option>
                            </select><br>
                            <input name="upfile[]" type="file" size="60" class="inputUp">
                            <select name="path2" class="inputUp">
                                <option></option>
                                <option>Salg_Montage</option>
                                <option>Reklamation</option>
                                <option>Claim</option>
                            </select><br>
                            <input name="upfile[]" type="file" size="60" class="inputUp">
                            <select name="path3" class="inputUp">
                                <option></option>
                                <option>Salg_Montage</option>
                                <option>Reklamation</option>
                                <option>Claim</option>
                            </select><br>
                            <input name="upfile[]" type="file" size="60" class="inputUp">
                            <select name="path4" class="inputUp">
                                <option></option>
                                <option>Salg_Montage</option>
                                <option>Reklamation</option>
                                <option>Claim</option>
                            </select><br>
                            <input name="upvalue" type="hidden" value="1"><br>
                            <input type="submit" value="Gem fil" id="submit">
                            <input name="nulstil" type="reset" value="Reset" id="reset">
                            <input name="Upload filer" type="button" title="Upload files" onClick="hideupload('upload');return false;" value="Luk Upload" id="close">
                        </td>
                    </tr>
                </table>
            </form>
    </center>


Håber du kan hjælpe udfra dette?
Avatar billede roenving Novice
20. oktober 2005 - 00:55 #17
Argh, jeg havde glemt/overset, at en select-type er select-one eller select-multiple ,-(

Prøv sådan:

<script type="text/javascript">
function valider(f){
  var e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].type == 'file' && e[i].value != "" && e[i+1].type.indexOf('select') == 0 && e[i+1].selectedIndex == 0){
      alert('Du skal vælge type!');
      e[i+1].focus();
      return false;
    }
  }
  return true;
}
</script>
Avatar billede olebole Juniormester
20. oktober 2005 - 00:55 #18
<ole>

Fejl:
  <input ............ id="submit">

Med den overskriver du submit-metoden. Kald den noget andet  :)

/mvh
</bole>
Avatar billede olebole Juniormester
20. oktober 2005 - 00:57 #19
- og vælg også en anden id til din reset-knap.

Brug aldrig ord, du ved eksisterer i forvejen. Det er at sætte vand over til øretæver  ;o)
Avatar billede olebole Juniormester
20. oktober 2005 - 00:58 #20
- eller rettere:
  "Brug aldrig ord, du ved eksisterer i forvejen, som identifier."
Avatar billede Morten Nybegynder
20. oktober 2005 - 00:59 #21
>>Ole

Tak for dine gode råd (det virker nu - men jeg tager den til mig den ører-figne ;O)
Avatar billede roenving Novice
20. oktober 2005 - 01:00 #22
-- og også name="Upload filer" er et ugyldigt navn ...
Avatar billede Morten Nybegynder
20. oktober 2005 - 01:03 #23
Øhhh hvorfor - mellemrum?
Avatar billede Morten Nybegynder
20. oktober 2005 - 01:06 #24
Det virker bare så Smuuuuuuukt nu... og jeg har rettet som de herre påtalt - lidt god programmeringsskik er aldrig af vejen...

Roenving er du venlig at smide et svar så jeg endnu engang kan sige tak for hjælpen...

Og så god nat og sov godt....
Avatar billede roenving Novice
20. oktober 2005 - 01:06 #25
Avatar billede roenving Novice
20. oktober 2005 - 01:06 #26
Velbekomme '-)
Avatar billede roenving Novice
20. oktober 2005 - 01:08 #27
-- og tak for point ;~}
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