2015-11-04 9 views
5

Voglio controllare il tipo di file di caricamento utilizzando il plugin di convalida.jquery validate accept method - TypeError: Impossibile leggere la proprietà 'call' di undefined

ma ho ottenuto il seguente messaggio di errore:

Uncaught TypeError: Cannot read property 'call' of undefined. 
Exception occurred when checking element file, check the 'accept' method. 

Ecco la mia forma.

<form id="upload" enctype="multipart/form-data"> 
    <div class="control-group"> 
     <div class="controls"> 
      <input id="file" name="file" type="file"> 
     </div> 
     <div class="form-group"> 
      <button class="btn btn-primary" onclick="Submit()" type="button">Submit</button> 
     </div> 
    </div> 
</form> 

E qui è la mia JavaScript:

var Submit=function(){ 
    var validator = $('#upload').validate({ 
     rules:{ 
      file: { 
       required: true, 
       accept: "audio/*, video/*" 
      } 
     }, 
     message: { 
      file:"Invalid file type" 
     } 
    }); 

    validator.form(); 
} 

risposta

18

Per utilizzare il metodo "accept" è necessario includere il file di ulteriori metodi jQuery Convalida. È sufficiente includere dopo il file validate:

<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> 
<script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> 

poi cercare di avviare il vostro validatore come questo, invece:

$(document).ready(function(){ 
    $("#upload").validate({ 
     ...settings... 
    }); 
}); 

e rimuovere l'attributo onClick e type="button" dal bottone.

Ecco i documenti:

http://jqueryvalidation.org/validate/

+0

ancora ottenuto l'errore: TypeError Uncaught: Impossibile leggere la proprietà 'chiamare' di indefinito. Si è verificata un'eccezione durante il controllo del file dell'elemento, controllare il metodo "accetta". – user3927463

+0

Grazie mille !! – user3927463

Problemi correlati