summernote富文本编辑器配合validate表单验证无法进行表单提交的问题
1.使用summernote富文本编辑器提交图片到服务器
在使用bootstrap中,我们用到了summernote富文本编辑器,使用summernote将图片上传到服务器中,参考我的上篇文章http://www.cnblogs.com/jingmin/p/6592325.html
2.在使用summernote编辑完文本,使用validate进行表单验证出现问题的解决方案
小编在使用summernote富文本编辑器编辑完文章内容,并且上传了图片,对于编写的内容使用了validate进行了表单验证,结果发现表单无法提交。
html代码:
<form method="post" action="{:U('article/add')}" id="add" enctype="multipart/form-data"> <textarea type="text" name="content" id="summernote"></textarea> <button type="submit" class="btn btn-default" id="subButton">提交</button> </form>
js中进行validate表单验证
$("#add").validate({ rules: { content:{ required: true } }, messages: { content:{ required: "请输入内容" } } });
现在,我们编辑完文章,并且一定附带有图片,此时,我们点击提交,发现表单validate并没有提示错误,但是发现无法进行表单提交。
重点:那么原因出现在这里,summernote将图片上传到服务器的时候,我们在选择图片的时候,进行了图片文件上传到服务器的过程,其实在这个过程中,summernote编辑器进行了文件的上传,就在此时,就在此时,就在此时,文件上传的时候,其实就默认进行了一次文件上传的files的validate验证,(accept验证,具体的可以查看summernote上传图片的源代码)也就是说在上传图片文件的过程中,进行了一次validate的accept表单验证,并且出现了错误,但是这个错误提示信息无法显示出来,致使表单无法提交。不懂得话多读几次,或者自己查看summernote源代码,查看图片上传文件的<input>就能明白。是需要实际动手研究的。
解决方案:
$("#add").validate({ //使用validate中的ignore忽略summernote上传文件的验证,summernote的写法是固定的,其它编辑器根据实际情况而定 ignore:".note-image-input,.note-group-select-from-files", rules: { content:{ required: true } }, messages: { content:{ required: "请输入内容" } } });
我们在这里,使用ignore忽略上传图片文件的验证,那么summernote+validate就能顺利执行了。
了解validate更多的参数,请看:http://www.cnblogs.com/jingmin/p/6294982.html
辛苦的研究成果,希望对大家有所帮助!请给小编一个赞!谢谢!