Nu wil ik het valideren met JavaScript om te controleren of een bestand is"> Nu wil ik het valideren met JavaScript om te controleren of een bestand is"> Nu wil ik het valideren met JavaScript om te controleren of een bestand is" />

JavaScript valideert een veld dat het uploaden van meerdere bestanden toestaat. Controleer of er een selectie is gemaakt?

Ik heb een formulier waarmee meerdere bestandsuploads mogelijk zijn.

<input name="uploadedfile[]" type="file" multiple="true"/>

Nu wil ik het valideren met JavaScript om te controleren of een bestand is geselecteerd. Ik probeerde het volgende maar faalde

if(form.uploadedfile.length < 1)
{
    alert("You Forgot to select an image");
    return false;
}

en ik weet dat het een array is, maar ik heb het ook geprobeerd

if(form.uploadedfile.value == '')
{
    alert("You Forgot to select an image");
    return false;
}

kan iemand me hiermee helpen. Bedankt

3
@jValdron - multiple = "true" stelt u in staat om meerdere bestanden tegelijkertijd te selecteren. De voorgestelde methode is niet gebruiksvriendelijk omdat ze elke input afzonderlijk moeten invullen!
toegevoegd de auteur pat, de bron
wat zijn deze haakjes in uw naamattribuut ???
toegevoegd de auteur Luke, de bron
Ik denk niet dat multiple = "true" er zou moeten zijn, maar er zou meer dan één geüploadFile [] moeten zijn in het formulier.
toegevoegd de auteur jValdron, de bron
@Luke, de haakjes zijn voor meerdere uploads, het is geldig. Zou prima moeten werken in PHP, zou een array van geüploadFile moeten geven. Ik weet niet zeker hoe ik toegang heb tot een reeks invoer in JavaScript.
toegevoegd de auteur jValdron, de bron

2 antwoord

Eén benadering is:

$('input[type="file"][multiple]').change(
    function(e){
        var numFiles = e.currentTarget.files.length;
        if (numFiles == 0){
           //no files
        }
        else {
           //files chosen
            console.log(numFiles);
        }
        return false;
    });

JS Fiddle.

1
toegevoegd

In dit voorbeeld gebruiken ze een bestandseigenschap van de invoer en controleren ze de lengte ervan, iets als deze.

<input name="uploadedfile[]" id="uploadfile" type="file" multiple="true"/>

En de JS:

if(document.getElementById("uploadfile").files.length < 1)
{
   alert("You Forgot to select an image");
   return false;
}

Ik heb nog geen informatie over de bestandeneigenschap kunnen vinden.

0
toegevoegd
@pat Geen zorgen, blij dat het werkt!
toegevoegd de auteur Christofer Eliasson, de bron
Hé, ik had dit eerder geprobeerd en het werkte niet. Maar toen ik naar je antwoord keek en de mijne beoordeelde, besefte ik dat ik de ID had genoemd als "uploadbestand" en voortdurend op "geüpload bestand" controleerde. Daarom kan ik het niet laten werken. Domme Ik! In ieder geval bedankt
toegevoegd de auteur pat, de bron