Validation du type de fichier avec Javascript

J'ai une question concernant la validation de JavaScript. Je valide le <input type="file"> chaque fois que mes scripts fonctionnent, il valide mais aussi la page d'action est appelée. Je souhaite arrêter la page d'action jusqu'à ce que la validation soit terminée. Voici mon code, toute aide sera géniale. Cordialement

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Image Uploading</title> </head> <body> <form name="xx" action="server.php" method="post" enctype="multipart/form-data" onsubmit="Checkfiles(this)"> <input type="file" name="file_uploading" id="filename"> <input type="submit" value="Submit" name="uploadfile"> </form> <form name="view" method="post"> <a href="view_server.php">View your uploaded Images</a> </form> </body> </html> <script type="text/javascript"> function Checkfiles() { var fup = document.getElementById('filename'); var fileName = fup.value; var ext = fileName.substring(fileName.lastIndexOf('.') + 1); if(ext =="GIF" || ext=="gif") { return true; } else { alert("Upload Gif Images only"); return false; } } </script> 

 var fname = "the file name here.ext"; var re = /(\.jpg|\.jpeg|\.bmp|\.gif|\.png)$/i; if(!re.exec(fname)) { alert("File extension not supported!"); } 

Vous pouvez utiliser le fichier Api pour tester le numéro magique . Peut-être jeter un oeil à cette réponse pour d'autres idées sur la validation. Plus fiable que la vérification de l'extension de fichier.

La valeur de retour du gestionnaire de soumission affecte la soumission.

 onsubmit="return Checkfiles();" 

Cela dit essentiellement:

 form.onsubmit = function () { return Checkfiles(); }; 

Essayez cela, ça fonctionne bien

 <script> $(document).ready(function () { $('input[type=file]').change(function () { var val = $(this).val().toLowerCase(); var regex = new RegExp("(.*?)\.(docx|doc|pdf|xml|bmp|ppt|xls)$"); if(!(regex.test(val))) { $(this).val(''); alert('Please select correct file format'); } }); }); </script> 

Vous devez retourner CheckFiles()

Télécharger des données groupées via Excel Sheet (.csv)

 $("form").submit(function(){ var val = $(this).val().toLowerCase(); var regex = new RegExp("(.*?)\.(csv)$"); if(!(regex.test(val))) { $(this).val(''); alert('Only csv file can be uploaded'); return false; } }); 
 var _URL = window.URL || window.webkitURL; $("input[type=file]").change(function(e) { var file; if ((file = this.files[0])) { var img = new Image(); img.onload = function () { // do to on load }; img.onerror = function () { alert("valid format " + file.type); }; img.src = _URL.createObjectURL(file); } });