17. maj 2009 - 20:43Der er
5 kommentarer og 1 løsning
Check på Input:File felt
Hej derude,
Jeg vil først gerne starte med at sige jeg ingen erfaring har med JavaScript, men var så modig som at tro det kunne jeg godt gennemskue :o(
Jeg har i nedenstående script fået alt til at virke med undtagelse af afsnittet med "Basic validation for Photo"
Er der nogen der kan se hvad der går galt? Det er sat op til at jeg ved hjælp af en knap kan tilføje så mange input:file felter som jeg ønsker, deraf "addFileUploadBox.lastAssignedId"
Jeg ønsker at checke for om der er valgt en fil i input:file og at den valgte fil er af typen .gif, .jpg. osv. før der genereres et nyt felt.
<script type="text/javascript"> function addFileUploadBox() { if (!document.getElementById || !document.createElement) return false;
var _divUploadMessage = document.getElementById("divUploadMessage"); var _pararaphUploadArea = document.getElementById("pararaphUploadArea"); if (!_pararaphUploadArea) return;
//Check and assign new FileboxID if (!addFileUploadBox.lastAssignedId) addFileUploadBox.lastAssignedId = 100;
//Basic validation for Photo var filPhoto = document.getElementById("filebox" + addFileUploadBox.lastAssignedId); if (filPhoto.value.length == 0) { alert("Please fill out your name.\n"); _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Please specify the file.</span>'; _divUploadMessage.style.display = ''; filPhoto.focus(); return; }
var regExp = /(.*\.([gG][iI][fF]|[jJ][pP][gG]|[jJ][pP][eE][gG]|[pP][nN][gG]|[bB][mM][pP])$)/; if (!regExp.test(filPhoto.value)) { _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Invalid file type. Only supports jpg, gif, png and bmp.</span>'; _divUploadMessage.style.display = ''; filPhoto.focus(); return; }
// Add new br and box var newLine = document.createElement("br"); _pararaphUploadArea.appendChild(newLine);
var newUploadBox = document.createElement("input");
// The new box needs a name and an ID // Set up the new input for file uploads newUploadBox.type = "file"; newUploadBox.size = "45";
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
var filPhoto = document.getElementById("filebox" + addFileUploadBox.lastAssignedId); if (filPhoto.value.length == 0) { alert("Please fill out your name.\n"); _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Please specify the file.</span>'; _divUploadMessage.style.display = ''; filPhoto.focus(); return; }
var regExp = /(.*\.([gG][iI][fF]|[jJ][pP][gG]|[jJ][pP][eE][gG]|[pP][nN][gG]|[bB][mM][pP])$)/; if (!regExp.test(filPhoto.value)) { _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Invalid file type. Only supports jpg, gif, png and bmp.</span>'; _divUploadMessage.style.display = ''; filPhoto.focus(); return; }
Jeg har prøvet at køre med var regExp som du skriver den, men så virker den ikke i FireFox ...
Det e rikke fordi den fejler når jeg køre scriptet, den gør bare ganske enkelt ikke noget, men fjerner jeg alt ovenstående fra #1 så tilføjer den fint en ny boks?
Det er ligeså snart jeg smider kontrol af length og extension ind det går galt.
Hvis jeg kommenterer alt ud i og stadig beholder: var filPhoto = document.getElementById("filebox" + addFileUploadBox.lastAssignedId);
så virker det stadig fint, men lige så snart jeg bruger den til noget filPhoto til noget så går det galt. Jeg har en forud defineret input:file boks som hedder filebox100, og det burde så være getElementById("filebox" + addFileUploadBox.lastAssignedId) delen?
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.