ux.form.field.KindEditor 所见所得编辑器

注意需要引入KindEditor相关资源

  1 //所见所得编辑器
  2 Ext.define(‘ux.form.field.KindEditor‘, {
  3     extend: ‘Ext.form.field.TextArea‘,
  4     alias: ‘widget.kindEditor‘,
  5     xtype: ‘kindEditor‘,
  6     //最大文本长度
  7     maxLength:5000,
  8     //配置
  9     editorConfig: {
 10         //选项功能
 11         items: [
 12             ‘source‘, ‘|‘, ‘undo‘, ‘redo‘, ‘|‘, ‘preview‘, ‘cut‘, ‘copy‘, ‘paste‘, ‘plainpaste‘, ‘wordpaste‘, ‘|‘, ‘justifyleft‘, ‘justifycenter‘, ‘justifyright‘, ‘justifyfull‘, ‘insertorderedlist‘, ‘insertunorderedlist‘, ‘indent‘, ‘outdent‘, ‘subscript‘, ‘superscript‘, ‘clearhtml‘, ‘quickformat‘, ‘selectall‘, ‘|‘, ‘fullscreen‘, ‘/‘,
 13
 14             ‘formatblock‘, ‘fontname‘, ‘fontsize‘, ‘|‘, ‘forecolor‘, ‘hilitecolor‘, ‘bold‘, ‘italic‘, ‘underline‘, ‘strikethrough‘, ‘lineheight‘, ‘removeformat‘, ‘|‘, ‘image‘, ‘table‘, ‘hr‘, ‘emoticons‘, ‘pagebreak‘, ‘anchor‘, ‘link‘, ‘unlink‘, ‘|‘, ‘about‘
 15         ],
 16         minHeight: 200
 17     },
 18     afterRender: function () {
 19         var me = this;
 20         me.callParent(arguments);
 21         //延迟输入验证
 22         me.task = Ext.create(‘Ext.util.DelayedTask‘,
 23         function (t) {
 24             me.isValid();
 25         },
 26         me);
 27         if (!me.editor) {
 28             //创建富文本插件
 29             me.editor = KindEditor.create("#" + me.getInputId(), Ext.apply(me.editorConfig, {
 30                 //编辑器创建成功
 31                 afterCreate: function () {
 32                     //标识完成
 33                     me.KindEditorIsReady = true;
 34                 },
 35                 //内容发生改变时
 36                 afterChange: function () {
 37                     //编辑器初始化完成才执行
 38                     if (me.KindEditorIsReady) {
 39                         //延迟输入验证
 40                         me.task.delay(100);
 41                     }
 42                 },
 43                 //失去焦点
 44                 afterBlur: function () {
 45                     //输入验证
 46                     me.isValid();
 47                 }
 48             }));
 49         } else {
 50             me.editor.html(me.getValue());
 51         }
 52     },
 53     setValue: function (value) {
 54         //console.log(‘setValue‘);
 55         var me = this;
 56         if (!me.editor) {
 57             me.setRawValue(me.valueToRaw(value));
 58         } else {
 59             if(value){
 60                 me.editor.html(value.toString());
 61             }else{
 62
 63             }
 64         }
 65         me.callParent(arguments);
 66         return me.mixins.field.setValue.call(me, value);
 67     },
 68     getRawValue: function () {
 69         //console.log(‘getRawValue‘);
 70         var me = this;
 71         if (me.KindEditorIsReady) {
 72             //自动同步值
 73             me.editor.sync();
 74         }
 75         v = me.inputEl ? me.inputEl.getValue() : ‘‘;
 76         me.rawValue = v;
 77         return v;
 78     },
 79     //重置
 80     reset: function () {
 81         if (this.editor) {
 82             this.editor.html(‘‘);
 83         }
 84         this.callParent();
 85     },
 86     //销毁富文本控件
 87     destroyEditor: function () {
 88         var me = this;
 89         if (me.rendered) {
 90             try {
 91                 me.editor.remove();
 92                 me.editor = null;
 93             } catch (e) { }
 94         }
 95     },
 96     //销毁
 97     onDestroy: function () {
 98         var me = this;
 99         me.destroyEditor();
100         me.callParent(arguments);
101     }
102 });
时间: 2024-10-24 13:41:37

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

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

效果如图,亲测6.2.1版本可用 1 /** 2 *支持快速选择日期的日期控件 3 */ 4 Ext.define('ux.form.field.GridDate', { 5 extend: 'Ext.form.field.Date', 6 alias: 'widget.gridDateField', 7 requires: ['ux.picker.GridDate'], 8 pickerGrid: { 9 store: { 10 //默认配置 11 data: [{ 12 value: 30,

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

1 //验证码控件 2 Ext.define('ux.form.field.Verify', { 3 extend: 'Ext.container.Container', 4 alias: ['widget.fieldVerify'], 5 requires: ['Ext.Img', 'Ext.form.field.Text'], 6 layout: { 7 type: 'hbox', 8 align: 'stretch' 9 }, 10 config: { 11 //文本框内刷新按钮 12 r

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

1 /** 2 * A Picker field that contains a tree panel on its popup, enabling selection of tree nodes. 3 * 动态绑定store,修复火狐点击穿透bug 4 * 水平有限,可能有新坑 5 */ 6 Ext.define('ux.form.field.TreePicker', { 7 extend: 'Ext.form.field.Picker', 8 xtype: 'uxTreepicker', 9

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

1 //支持bind绑定store 2 //列表搜索扩展,支持本地查询 3 //支持树形菜单本地一级菜单查询 4 Ext.define('ux.form.field.SearchField', { 5 extend: 'Ext.form.field.Text', 6 alias: 'widget.uxSearchfield', 7 defaultBindProperty: 'store', 8 mixins: ['Ext.util.StoreHolder'], 9 triggers: { 10

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

效果如图,亲测6.2.1版本可用,用法同时间选择控件 1 //只选择年的控件 2 Ext.define('ux.picker.Year', { 3 extend: 'Ext.Component', 4 alias: 'widget.uxYearpicker', 5 alternateClassName: 'ux.uxYearpicker', 6 cls: 'uxYearpicker', 7 isYearPicker: true, 8 9 focusable: true, 10 11 childE

ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)

鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-12-11/189.html ------------------------------------------------------------------------------------------- Ext.form.Field是所有表单输入控件的基类,其他的输入控件都是基于Ext.form.Field扩展得来的. Ext.form.Field

ExtJS4.2学习(17)表单基本输入控件Ext.form.Field

Ext.form.Field是所有表单输入控件的基类,其他的输入控件都是基于Ext.form.Field扩展得来的. Ext.form.Field中定义了输入控件通用的属性和功能函数,这些通用的属性和功能函数大致分为3大类:页面显示样式.控件参数配置和数据有效性检验.我们先来看看表单输入控件可以使用的校验显示方式.默认情况下,这些输入控件会监听blur事件,如果数据校验失败,就会根据msgTarget中的设置显示错误信息.通常,msgTarget会被设置为qtip,即使用QuickTip显示错误

重写 Ext.form.field 扩展功能

直接代码,放项目overrides文件夹中即可 1 //重写类 表单父类 2 //支持allowBlank动态绑定 3 Ext.define("override.form.field.Base", { 4 override: "Ext.form.field.Base", 5 //标签文字右对齐 6 labelAlign: 'right', 7 setAllowBlank: function (value) { 8 this.allowBlank = value; 9

ExtJs之Ext.form.field.TimePicker DatePicker组合框

<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" href="ExtJs/