注意需要引入KindEditor相关资源

 //所见所得编辑器
Ext.define('ux.form.field.KindEditor', {
extend: 'Ext.form.field.TextArea',
alias: 'widget.kindEditor',
xtype: 'kindEditor',
//最大文本长度
maxLength:5000,
//配置
editorConfig: {
//选项功能
items: [
'source', '|', 'undo', 'redo', '|', 'preview', 'cut', 'copy', 'paste', 'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', 'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/', 'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'table', 'hr', 'emoticons', 'pagebreak', 'anchor', 'link', 'unlink', '|', 'about'
],
minHeight: 200
},
afterRender: function () {
var me = this;
me.callParent(arguments);
//延迟输入验证
me.task = Ext.create('Ext.util.DelayedTask',
function (t) {
me.isValid();
},
me);
if (!me.editor) {
//创建富文本插件
me.editor = KindEditor.create("#" + me.getInputId(), Ext.apply(me.editorConfig, {
//编辑器创建成功
afterCreate: function () {
//标识完成
me.KindEditorIsReady = true;
},
//内容发生改变时
afterChange: function () {
//编辑器初始化完成才执行
if (me.KindEditorIsReady) {
//延迟输入验证
me.task.delay(100);
}
},
//失去焦点
afterBlur: function () {
//输入验证
me.isValid();
}
}));
} else {
me.editor.html(me.getValue());
}
},
setValue: function (value) {
//console.log('setValue');
var me = this;
if (!me.editor) {
me.setRawValue(me.valueToRaw(value));
} else {
if(value){
me.editor.html(value.toString());
}else{ }
}
me.callParent(arguments);
return me.mixins.field.setValue.call(me, value);
},
getRawValue: function () {
//console.log('getRawValue');
var me = this;
if (me.KindEditorIsReady) {
//自动同步值
me.editor.sync();
}
v = me.inputEl ? me.inputEl.getValue() : '';
me.rawValue = v;
return v;
},
//重置
reset: function () {
if (this.editor) {
this.editor.html('');
}
this.callParent();
},
//销毁富文本控件
destroyEditor: function () {
var me = this;
if (me.rendered) {
try {
me.editor.remove();
me.editor = null;
} catch (e) { }
}
},
//销毁
onDestroy: function () {
var me = this;
me.destroyEditor();
me.callParent(arguments);
}
});

ux.form.field.KindEditor 所见所得编辑器的更多相关文章

  1. ux.form.field.Verify 验证码控件

    //验证码控件 Ext.define('ux.form.field.Verify', { extend: 'Ext.container.Container', alias: ['widget.fiel ...

  2. ux.form.field.TreePicker 扩展,修复火狐不能展开bug

    /** * A Picker field that contains a tree panel on its popup, enabling selection of tree nodes. * 动态 ...

  3. ux.form.field.SearchField 列表、树形菜单查询扩展

    //支持bind绑定store //列表搜索扩展,支持本地查询 //支持树形菜单本地一级菜单查询 Ext.define('ux.form.field.SearchField', { extend: ' ...

  4. ux.form.field.Year 只能选年的时间扩展

    效果如图,亲测6.2.1版本可用,用法同时间选择控件 //只选择年的控件 Ext.define('ux.picker.Year', { extend: 'Ext.Component', alias: ...

  5. ux.form.field.Month 只能选年、月的时间扩展

    效果如图,亲测6.2.1版本可用,用法同时间选择控件 //月弹窗扩展 //只选月 Ext.define('ux.picker.Month', { extend: 'Ext.picker.Month', ...

  6. ux.form.field.Password 密码与非密码状态切换

    效果如图: 扩展源码: //扩展 //密码按钮扩展 //支持在密码与非密码之间切换 Ext.define('ux.form.field.Password', { extend: 'Ext.form.f ...

  7. ux.form.field.GridDate 支持快速选择日期的日期控件

    效果如图,亲测6.2.1版本可用 /** *支持快速选择日期的日期控件 */ Ext.define('ux.form.field.GridDate', { extend: 'Ext.form.fiel ...

  8. ExtJs Ext.form.field.TextArea+Ckeditor 扩展富文本编辑器

    Ext.define("MyApp.base.BaseTextArea", { extend: "Ext.form.field.TextArea", xtype ...

  9. ExtJs文件上传(Ext.ux.form.FileUploadField)

    Ext.ux.form.FileUploadField = Ext.extend(Ext.form.TextField, { /**  * @cfg {String} buttonText The b ...

随机推荐

  1. Android开发学习总结(六)—— APK反编译

    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译.我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或 ...

  2. git tag查看、创建与删除

    tag管理 查看tag 太多的话用 grep 过滤 $ git tag | grep dev_20150525 # 创建tag $ git tag -a dev_20150525_16 -m 'xxx ...

  3. [C++] 几行代码生成漂亮图片,数学家就是牛!

    信息获得处:http://news.cnblogs.com/n/501488/ 分形:http://baike.baidu.com/subview/83243/11213590.htm?fr=alad ...

  4. 一道印象深刻的面试题:String参数传递问题

    今天小菜去北京某知名公司面试,做了公司的面试题,然后就是轻松的面试. 面试过程中,面试官让我讲讲其中一个题是怎么选的答案,代码大致内容如下: public class StringTest{ publ ...

  5. oracle--创建表空间、用户名、密码

    原文链接:http://blog.sina.com.cn/s/blog_4ce992f40101cspr.html

  6. Python模拟用户登录

    # coding=utf8 import hashlib db = { 'michael':'e10adc3949ba59abbe56e057f20f883e', 'bob':'878ef96e861 ...

  7. android定位GPS定位 代码实现

    package com.lx.util;   import android.content.Context; import android.content.SharedPreferences; imp ...

  8. 更改Linux默认栈空间的大小

    有时候在Linux写C++程序处理大量的数据,程序内部需要分配很大的数组来存放一些数据,但有时候分配的数组太大的话运行时会出现段错误.这种情况可能是分配的数组大小超过了Linux系统的默认栈空间的大小 ...

  9. Hibernate入门6.Hibernate检索方式

    Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...

  10. 解决stackoverflow打开慢不能注册登录

    http://blog.csdn.net/dream_an/article/details/50280977 解决stackoverflow打开慢不能注册登录 标签: stack overflowfi ...