la mia situazione è questa:
sto creando una pèagina di caricamento articolo dove ho diversi campi, tra cui N campi immagini e N campi allegati.
al submit del form devo effettuare un primo livello di verifica del tipo di file, successivamente lato server un secondo livello di verifica.
il codice html in questione è questo, premetto che sleziono gli element tramite IL TAG ID
e questo il java script:codice:<form method="POST" name="insert" enctype="multipart/form-data" action="db_insert.php" onSubmit="javascript:file_control();"> <td align="left"><input type="file" name="allegato[]" id="allegati" size="45"></td> <td align="left"><input type="file" name="immagine[]" id="immagine" size="45"></td>
codice:<script language="JavaScript" type="text/JavaScript"> function ValidAll(url) { var ext= url.split('.'); return /(pdf|doc|rtf|xls)/.test(ext[ext.length-1]); } function ValidImg(url) { var ext= url.split('.'); return /(jpg|jpeg)/.test(ext[ext.length-1]); } function getElementsById(sId) { var outArray = new Array(); if(typeof(sId)!='string' || !sId) { return outArray; }; if(document.evaluate) { var xpathString = "//*[@id='" + sId.toString() + "']" var xpathResult = document.evaluate(xpathString, document, null, 0, null); while ((outArray[outArray.length] = xpathResult.iterateNext())) { } outArray.pop(); } else if(document.all) { for(var i=0,j=document.all[sId].length;i<j;i+=1) { outArray[i] = document.all[sId][i]; } } else if(document.getElementsByTagName) { var aEl = document.getElementsByTagName( '*' ); for(var i=0,j=aEl.length;i<j;i+=1) { if(aEl[i].id == sId ) { outArray.push(aEl[i]); }; }; }; return outArray; } function check_img(files) { for (x=1;x<=<? echo $pic_num ?>;x++) { var file=files[x].value; if (x==1 && file == "") { var vai=confirm("Attenzione! si sta tralasciando la scelta dell' immagine base per l'articolo,\n ovvero l'immagine che verra' visualizzata dall' utente \n nella lista degli articoli.\n Si desidera continuare?\n"); if (vai) { return true; } else { insert.immagini[x].focus(); return false; } } if(!ValidImg(file)) { alert('I file accettati sono jpg o jpeg'); insert.immagine[x].focus(); return false; } } } function check_all(files) { for (x=1;x<=<? echo $att_num ?>;x++) { var file=files[x].value; if(!ValidAll(file)) { alert('I file accettati sono doc,xls,rtf o pdf'); insert.allegato[x].focus(); return false; } } } function file_control() { var files_img = getElementsById('immagine'); var files_all = getElementsById('allegati'); check_img(files_img); check_all(files_all); }
il messaggio della consolle degli errori di FFox è "document.insert has non properties" e mi rimane il browser a pagina bianca in caricamento con la clessidra... non riesco a capire, io di java script sò meno di una cippa![]()


Rispondi quotando