Avatar billede showsource Seniormester
30. august 2007 - 13:51 Der er 8 kommentarer og
1 løsning

Tjekke for tomt felt i en forløkke

Hej

Vil gerne tjekke at der er valgt mindst en fil i x-antal uploadfelter før der submittes.

Men er kørt sur i hvordan jeg får fat i value for hvert felt.

( javascript..., javascript... ,........... )

Har det her so far:

function upfield() {

    var navn = document.forms['do_upload'].elements['upfile[]'];

    var antal = (navn.length != undefined ? navn.length : 1);
    var tael = 0;
    reg = /^[\s]+$/;

        for(i=0;antal>i;i++) {

            if(tjekvalue her, og ikke tom, læg en til tael) {
            tael++;
            }

        }

    if(tael < 1) {
    alert('Vælg en fil til upload');
    return false;
    }

return true;
}
Avatar billede showsource Seniormester
30. august 2007 - 13:56 #1
Nåh, ja, det er sgu på tide jeg komemr ud og får lidt luft!!!!!!!!!!!!

function upfield() {

    var navn = document.forms['do_upload'].elements['upfile[]'];

    var antal = (navn.length != undefined ? navn.length : 1);
    var tael = 0;
    reg = /^[\s]+$/;

        for(i=0;antal>i;i++) {
            if(navn[i].value != '') {
            tael++;
            }
        }

    alert(tael);
    return false;

}

( næsten )
Avatar billede showsource Seniormester
30. august 2007 - 14:18 #2
hmm, hvordan får jeg det til at virke hvis der kun er et felt, samt gøre brug af tjek for space

( og nu vil jeg ud i luften )
Avatar billede showsource Seniormester
30. august 2007 - 20:27 #3
Hvad er det jeg ikke ved? ( og som jeg ikke selv kan regne ud )

Hvis der kun er et felt,  vil den ikke, men med flere felter vil den fint!

var antal = navn.length;
Avatar billede olebole Juniormester
30. august 2007 - 21:25 #4
<ole>

<script type="text/JavaScript">
function foo(oF) {
    var aF = document.getElementsByName("upfile[]");
    var bTest = false;
    for (var i=0,j=aF.length; i<j; i++) {
        if (aF[i].value!="") bTest = true;
    }
    return bTest;
}
</script>

<form action="" onsubmit="foo(this)">
    <div><input type="file" name="upfile[]"></div>
    <button type="submit">TEST</button>
</form>

/mvh
</bole>
Avatar billede olebole Juniormester
30. august 2007 - 21:27 #5
- og du kan nøjes med:

function foo(oF) {
    var aF = document.getElementsByName("upfile[]");
    for (var i=0,j=aF.length; i<j; i++) if (aF[i].value!="") return true;
    return false;
}

- og naturligvis skal der i alle tilfælde returneres:
    <form action="" onsubmit="return foo(this)">
Avatar billede showsource Seniormester
31. august 2007 - 09:02 #6
ole, smid et svar!

Er der nogen grund til at du bruger "oF" og this ?
Er det mere korrekt kode eller hvad?

Bruger nu denne:

function upfield() {

    var navn = document.getElementsByName("upfile[]");
    antal = navn.length;
    var tael = 0;

    reg = /^[\s]+$/;

        for(i=0;antal>i;i++) {
            if(navn[i].value != '' && !navn[i].value.match(reg)) {
            tael++;
            }
        }

    if(tael < 1) {
        alert('Vælg en fil til upload');
        return false;
    }

return true;
}
Avatar billede olebole Juniormester
31. august 2007 - 14:40 #7
Hehe - nej, det var helt overflødigt ... jeg bruger dem ikke til noget alligevel. Jeg fik dem bare aldrig slettet igen  :)

Selv kan jeg bedre lide (30/08-2007 21:27:51), da den afbryder løkken, så snart den har fundet et ikke-tomt felt. Du har formodentlig ikke masser af felter, så det betyder sikkert ikke spor - men bevidstheden om, at det sker, kilder mig behageligt bag øjenbrynene  :D
Avatar billede showsource Seniormester
31. august 2007 - 15:28 #8
Det har du selvfølgelig ret i!
Så det blev så'n her:

function upfield() {

    var navn = document.getElementsByName("upfile[]");
    antal = navn.length;

    reg = /^[\s]+$/;

        for(i=0;antal>i;i++) {
            if(navn[i].value != '' && !navn[i].value.match(reg)) {
            return true;
            }
        }

    alert('Vælg en fil til upload');
    return false;

}


Takker for hjælp!
Avatar billede olebole Juniormester
31. august 2007 - 19:06 #9
Præcis! Selvtak og tak for points  ;o)
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