解决百度ueditor编辑器内容在jquery.validate中不验证问题
来源:互联网 发布:ysl高仿包包淘宝 编辑:程序博客网 时间:2024/05/19 19:33
- 问题场景
- 不验证原因
- 解决方法
问题场景
最近项目中表单数据提交用到了百度的文本编辑器ueditor,同时表单的验证用到了jquery.validate验证工具,并添加了content的非空验证,提交表单后发现ueditor的内容并没有验证文本内容。
不验证原因
随后就看了下jquery.validate的源码,发现其中一段:
checkForm: function() { this.prepareForm(); for ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) { this.check( elements[ i ] ); } return this.valid(); }
这个方法在调用form方法验证的时候调用,其中this.elements()方法获取表单中所有的元素和他们的值:
elements: function() { var validator = this, rulesCache = {}; // Select all valid inputs inside the form (no submit or reset buttons) return $( this.currentForm ) .find( "input, select, textarea, [contenteditable]" ) .not( ":submit, :reset, :image, :disabled" ) .not( this.settings.ignore ) .filter( function() { var name = this.name || $( this ).attr( "name" ); // For contenteditable if ( !name && validator.settings.debug && window.console ) { console.error( "%o has no name assigned", this ); } // Set form expando on contenteditable if ( this.hasAttribute( "contenteditable" ) ) { this.form = $( this ).closest( "form" )[ 0 ]; } // Select only the first element for each name, and only those with rules specified/* if ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) { return false; }*/ rulesCache[ name ] = true; return true; } ); }
其中一行not(this.settings.ignore)表示把显示状态为hidden的元素过滤掉,而恰巧,ueditor的实现方式正是初始化后把textarea隐藏,这就导致了在jquery.validate的rules里配置了验证规则却不验证。
解决方法
其实解决办法很简单,只需要在验证之前把隐藏的textarea显示出来就ok了,只是如果直接显示可能会有问题,比如下图这样:
如果直接显示textarea会直接在文本编辑器下面展示,这样肯定是不行的,只需要根据文本编辑器的位置设置textarea的位置,使它展示在编辑器后面z-index就ok。下图是验证结果:
以上只是根据实际开发中遇到的问题给出的解决方案,可能在现版本中已经没有问题了。这篇博客是鄙人第一篇原创博客,有什么不对的或不合理的地方希望道友们慷慨指出,不胜感激。
阅读全文
0 0
- 解决百度ueditor编辑器内容在jquery.validate中不验证问题
- 解决 jQuery Validate 在IE8中不兼容的问题
- 解决百度Ueditor编辑器表格不显示边框问题
- jquery validate 验证不提示问题
- jquery.validate.js 在ie中丢失焦点的时候不触发验证
- 百度ueditor编辑器在Asp.Net中使用
- 在ASP.NET Core中使用百度在线编辑器UEditor
- 在ASP.NET Core中使用百度在线编辑器UEditor
- 百度编辑器(UEditor)自定义内容样式
- 在asp.net mvc中使用百度UEditor初始化内容遇到自数据库中读取的html字符串在UEditor中始终是html编码的问题
- 解决 ueditor表格在页面上不显示的问题
- jquery validate name验证问题
- 百度编辑器ueditor 在vs2008中的使用方法
- 在spring下使用百度编辑器ueditor
- 百度ueditor 编辑器使用问题收集
- 在asp.net mvc中使用jquery validate验证
- jquery.validate 在html标签中写验证规则,jquery validate的正确用法
- 百度编辑器ueditor,项目不部署在root下和nginx兼容问题
- openshift jenkins
- python装饰器
- ubantu一条语句安装opencv(python)版
- 原子性 幂等性
- 双十一销量猛增 电商平台以外FIIL耳机开辟新路径
- 解决百度ueditor编辑器内容在jquery.validate中不验证问题
- 曾助力阿凡达、银河护卫队的这家公司,被mCube收了
- 10月份小程序观察 科技带动创新
- layui实现checkbox的目录树tree
- C++分割字符串函数封装
- android 仿ios右滑退出当前activity
- 操作符 ? 和 ??
- mysql group replication 单写模式 (single-primary mode) 搭建
- JQuery 对 Select option 的操作