2015-01-04 2 views
0

Я написал следующее правило для своего поля файла, так как хочу только принять документы Word из файлов PDF.Проверка jQuery - Форма отправляется, даже если указан неправильный тип файла

paperupload:{required: true, accept: "application/msword, application/pdf"} 

Когда я протестировал с загрузкой JPG-файла, форма отправляется без проверки других полей. Что-то не так я здесь сделал?

$("#papersubmitform").validate(
    { 
     submitHandler: function(form) { 

         $(form).submit(); 

     }, 

     messages: { 
      //CHECK Correspondence Authors' Information 
      contactTitle: "Please specify Correspondence Author's Title", 
      contactFirstName: "Please specify Correspondence Author's First Name", 
      contactLastName: "Please specify Correspondence Author's Last Name", 
      contactEmail: "Please specify Correspondence Author's Email Address", 
      contactUniList: "Please specify Correspondence Author's University", 
      //paperTitle:"Please specify Paper Title", 
      paperAbstract:"Please specify Paper Abstract" 

     }, 

     rules:{ 
      //Rules for Correspondence Author's Information 
      contactTitle: {required: true}, 
      contactFirstName: { required:true}, 
      contactLastName: { required:true}, 
      contactEmail: {required:true, email: true}, 
      contactUniList:{ required:function(){ 
       if(checkuninotinlist){ return false; } 
        else { return true; } 
       } 
      }, 

      contactUniversityName:{ required: function(){ 
        if(checkuninotinlist){ return true; } 
        else { return false; } 
        } 
      }, 

      contactUniCountry:{ required: function(){ 
        if(checkuninotinlist){ return true; } 
        else { return false; } 
        } 
      }, 


      contactOrganisation: { required:function(){ 
        if(checkorganisation){ return true; } 
        else { return false; } 
        } 
      }, 

      contactOrgCountry: { required:function(){ 
        if(checkorganisation){ return true; } 
        else { return false; } 
        } 
      }, 

      mailinglist:{required:true}, 
      researchmethod:{required:true}, 

      //PAPER INFORMATION 
      paperTitle:{required:true}, 
      paperAbstract:{required:true}, 
      paperupload:{required: true, accept: "application/msword, application/pdf"} 

    } 
});    

HTML ЗДЕСЬ

<input type="file" name="paperupload" /> 
+0

@Norman, снова прочитайте код OP. Это здесь; хотя это не требуется. Просто оставьте «submitHandler», а по умолчанию для плагина - то же поведение, что и '$ (form) .submit()'. – Sparky

ответ

1

Вы должны включить the additional-methods.js file для того, чтобы использовать метод accept.

Включите его сразу после включения плагина jQuery Validate.

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.validate.js"></script> 
<script type="text/javascript" src="additional-methods.js"></script> 
+0

Спасибо! Раньше я не добавлял дополнительные методы :) – kosherjellyfish

Смежные вопросы