我有一个奇怪的问题.我有一个文件上传的表单和其他几个textarea .each和每个字段都是必需的.所以基本上当几个字段留空时,验证工作正常,但是当且仅当文件上传留空,表格被提交.
这是我的代码
<li > <p> <label for="rad">radio label: </label><br> <input type="radio" name="rad" value="yes" style="width:20px"> Yes </input> <input type="radio" name="rad" value="no" style="width:20px"> No</input><br/> <label for="cv" class="error" style="display:none">This field is required</label> </p> <p> <input type="file" name="fupl" style="display:none;margin-top:10px" id="fup"/> <label for="fupl" class="error" style="display:none;color:red">This field is required</label> </p> </li> <br> <li> <label>checkBox label </label><br><br> <input type="checkBox" name="cb" value="tick" style="width:20px"> <small>checkBox field<small></input><br> <label for="fee" class="error" style="display:none">This field is required</label> </li> <br><li> <input type="submit" class="button" value="SUBMIT" style="float:right"/> </li> <script> $(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插件会忽略隐藏字段.但是,当您通过单选按钮显示文件上载字段时,它将验证并显示错误消息.见:
http://jsfiddle.net/y5ghU/
你的代码:
<input type="file" name="fupl" style="display:none;margin-top:10px" id="fup"/>
您的文件上传字段设置为display:none;默认情况下,插件将忽略所有隐藏的字段.
$(document).ready(function () { $('#form').validate({ ignore: [],rules: { fupl: { required: true,accept: 'docx|doc' } } }); });
DEMO:http://jsfiddle.net/ptV35/
编辑:不确定OP想要采用哪种方式,但是当重新隐藏文件上载字段时,以下演示会隐藏任何待处理的错误消息.
$("#fup").next('label.error').hide();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。