J'ai une simple fonction js/jquery que je veux exécuter lorsque le formulaire est soumis pour faire une validation supplémentaire. Mon formulaire permet de saisir plusieurs fichiers et je veux m'assurer que le total combiné de tous les fichiers est inférieur à une limite de fichiers que j'ai fixée.
var totalFileSize = 0;
$("input:file").each(function () {
var file = $(this)[0].files[0];
if (file) totalFileSize += file.size;
});
return totalFileSize < maxFileSize; // I've set maxFileSize elsewhere.
Le problème est que je veux l'exécuter dans le cadre de la validation de jquery. Mon formulaire, à d'autres endroits, utilise la validation standard MVC3 et une validation distincte et discrète que j'ai écrite. Si ce validateur File Size échoue, je veux qu'il se comporte comme les autres validateurs jquery : je veux, évidemment, arrêter le submit, et afficher un message d'erreur dans la même boîte de résumé que les autres.
Existe-t-il un moyen d'appeler une méthode simple comme celle-ci dans le cadre de la validation de l'envoi ? J'ai pensé à $.validator.addMethod, mais si je devais l'ajouter à chaque élément input:file, le même validateur serait exécuté plusieurs fois lors de l'envoi et le message d'erreur serait affiché plusieurs fois. Ce serait formidable s'il existait un moyen d'ajouter ce validateur sans le lier à aucun élément.