使用jQuery Validate插件进行文件上传validation

我有一个奇怪的问题。我有一个带有文件上传的表单和其他几个textarea .each并且每个字段都是必需的。所以基本上当少数字段留空时,validation工作正常,但是当且仅当文件上传留空时,表单被提交。

这是我的代码


  •   Yes     No




  •    checkbox field

  • $(document).ready(function() { $("input[type='radio']").change(function(){ if($(this).val()=="yes") { $("#fup").show(); } else { $("#fup").hide(); } }); });

    这是我的jquery

      $('#form').validate({ rules: { fupl: { required: true, accept:'docx|doc' }, 

    您的代码似乎工作得很好。 Validate插件会忽略隐藏字段。 但是,当您通过单选按钮显示文件上载字段时,它将validation并显示错误消息。 请参阅: http : //jsfiddle.net/y5ghU/


    你的代码:

      

    您的文件上传字段设置为display:none; 默认情况下,插件将忽略所有隐藏字段。

    使用ignore: []选项禁用此function。

     $(document).ready(function () { $('#form').validate({ ignore: [], rules: { fupl: { required: true, accept: 'docx|doc' } } }); }); 

    演示: http : //jsfiddle.net/ptV35/


    编辑 :不确定OP想要采用哪种方式,但下面的演示会在重新隐藏文件上载字段时隐藏任何待处理的错误消息。

     $("#fup").next('label.error').hide(); 

    http://jsfiddle.net/y5ghU/4/