devotionMedlem sedan jan. 20012 711 inlägg
:e
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
@ndersMedlem sedan juni 200026 914 inlägg
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
devotionMedlem sedan jan. 20012 711 inlägg
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
@ndersMedlem sedan juni 200026 914 inlägg
.doc är ju varken txt, dat eller asc, så den ska ju stoppas.
Hur kallar du på funktionen då?
devotionMedlem sedan jan. 20012 711 inlägg
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value
devotionMedlem sedan jan. 20012 711 inlägg
Gahhh!!!
Missade att kopiera slutet...
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, 'txt'));
@ndersMedlem sedan juni 200026 914 inlägg
Istället för 'txt' kan du ju skicka in något annat?
devotionMedlem sedan jan. 20012 711 inlägg
Typ...
onsubmit="return (validatelist(this) && checkFileExt(this.elements['file1'].value, '<% =sExt %>'));
?
@ndersMedlem sedan juni 200026 914 inlägg
devotionMedlem sedan jan. 20012 711 inlägg
finns det fler/bättre alternativ?
Att ändra i javascriptet är onödigt krångligt eller?
nitro2k01Medlem sedan aug. 20037 630 inlägg
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'));
devotionMedlem sedan jan. 20012 711 inlägg
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
devotionMedlem sedan jan. 20012 711 inlägg
Problemet löst... :D
Mvh
Henrik