Jag tycker den funktionen ser ut att göra det du vill.
Skickar du inte med filändelsen som parameter två när du kallar på funktionen?
Mvh
12 svar · 450 visningar · startad av devotion
Hej!
Jag har följande kod som kontrollerar om filändelsen är txt.
<script type="text/javascript">
function checkFileExt(fname, ext){
if (!new RegExp("\." + ext + "$", "i").test(fname)){
alert("Du har försökt skicka en fil med fel format!");
return false;
}
return true;
}
Hur kan jag gör kontrollen dynamisk.
Filandelsen är beroende av leverantör och kan hämtas i databas
ex.
Leverantör 1: txt
Leverantör 2: asc
Leverantör 3 dat
Mvh
Henrik
Jag tycker den funktionen ser ut att göra det du vill.
Skickar du inte med filändelsen som parameter två när du kallar på funktionen?
Mvh
Jo, det gör jag ju kanske...
Men om jag i nuläget försöker skicka upp test.doc... så stoppas den..
Jag kanske inte fattar riktigt...
//henrik
.doc är ju varken txt, dat eller asc, så den ska ju stoppas.
Hur kallar du på funktionen då?
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value
Gahhh!!!
Missade att kopiera slutet...
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, 'txt'));
Istället för 'txt' kan du ju skicka in något annat?
Typ...
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, '<% =sExt %>'));
?
till exempel.
Utnyttja kraften i regex! En regex kan matcha flera saker, tex så matchar uttrycket \.(doc|txt|dat)$ alla tre ändelserna. Följdaktligen kan du anv'nda koden nedan och skicka med en lista med filändelser separerade med | (S k pipe-tecken)
<script type="text/javascript">
function checkFileExt(fname, ext){
if (!new RegExp("\.(" + ext + ")$", "i").test(fname)){
alert("Du har försökt skicka en fil med fel format!");
return false;
}
return true;
}
...
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, 'txt|doc|dat'));
Men i det här fallet så är det ju beroende på vilken leverantör av fil man valt. Dvs inte en lista på olika filformat.
Leverantör 1 txt
Leverantör 2 asc
Leverantör 3 dat
Mvh
Henrik