1. 程式人生 > >Extjs5中HtmlEditor文字編輯器

Extjs5中HtmlEditor文字編輯器

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">系統使用Txtjs5自帶的HtmlEditor文字編輯器,資料庫對應欄位長度最大為200,文字編輯時,稍微加點樣式就超出限制了。</span>

要求:在前端驗證輸入長度,如果輸入過長,則提示,並無法提交。

HtmlEditor的並沒有提供像Text中可以設定MaxLength的配置。

看HtmlEditor的原始碼會發現,HtmlEditor繼承了Filed類,Field中有屬性:

Ext.define('Ext.form.field.Field', {
    mixinId: 'field',

    /**
     * @property {Boolean} isFormField
     * Flag denoting that this component is a Field. Always true.
     */
    isFormField : true,

    config: {
        /**
         * @cfg {Boolean/String} validation
         * This property, when a `String`, contributes its value to the error state of this
         * instance as reported by `getErrors`. This property is implicitly bound when the
         * `value` of this field is bound based on `{@link Ext.Component#modelValidation}`.
         */
        validation: null
    },

並且Field有方法:isValid()
    isValid : function() {
        var me = this;
        return me.disabled || Ext.isEmpty(me.getErrors());
    },

    /**
     * Returns whether or not the field value is currently valid by {@link #getErrors validating} the field's current
     * value, and fires the {@link #validitychange} event if the field's validity has changed since the last validation.
     * **Note**: {@link #disabled} fields are always treated as valid.
     *
     * Custom implementations of this method are allowed to have side-effects such as triggering error message display.
     * To validate without side-effects, use {@link #isValid}.
     *
     * @return {Boolean} True if the value is valid, else false
     */
    validate : function() {
        var me = this,
            isValid = me.isValid();
        if (isValid !== me.wasValid) {
            me.wasValid = isValid;
            me.fireEvent('validitychange', me, isValid);
        }
        return isValid;
    },
isValid()!!有沒有很熟悉。

form.isValid()~不知道form驗證的時候會不會跟這個有關係?

抱著試試看的態度,在HtmlEditor輸入發生變化的時候,修改了Validation配置,並在超出200(我們專案要求是200)後,做了提示:

            	change: {
            		fn: function(editor, newValue, oldValue, eOpts) {
            			if(newValue.length >= 200){
            				editor.setValidation('最大輸入限制200');
            				editor.setActiveError('最大輸入限制200');
            			}else{
            				editor.setValidation(null);
                			editor.setActiveError();
            			}
            		},
            		scope: me
            	},
            	blur: {		//在原始碼編輯模式下onchange事件不起作用,在失去焦點的時候判斷。
            		fn: function(editor) {
            			if(editor.getValue().length >= 200){
            				editor.setValidation('最大輸入限制200');
            				editor.setActiveError('最大輸入限制200');
            			}else{
            				editor.setValidation(null);
                			editor.setActiveError();
            			}
            		},
            		scope: me
            	}

然後輸入超出200.提示出來了,而且from沒有提交。偶也~

ps:繫結blur事件,是因為在原始碼編輯狀態輸入時,不知道為什麼HtmlEditor的change事件失效了,所以只好在失去焦點的時候進行判斷。

據說HtmlEditor的blur事件也失效,同事自己寫的。那些我就不懂了。

大笑大笑大笑

相關推薦

Extjs5HtmlEditor文字編輯

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">系統使用Txtjs5自帶的HtmlEditor文字編輯器,資料庫對應欄位

vue專案文字編輯vue-quill-editor的使用

前端開發過程中,會遇到在頁面上加入富文字編輯器,在vue專案中開發遇到這一需求的時候,我們可以使用富文字編輯器vue-quill-editor,話不多說,先上一張效果圖: 1)安裝 vue-quill-editor 依賴 npm install vue

java文字編輯的使用

一,首先要引入富文字編輯器的js  二,在你需要新增編輯器的jsp頁面中加入兩個js標籤引用 <script type="text/javascript" charset="utf-8" src="/js/kindeditor-4.1.10/kindeditor-all

linuxvim文字編輯的常見用法

Vim是一款當前Linux系統中預設安裝的文字編輯器,它功能強大,熟練地掌握其基本的用法,會對Linux學習更加得心應手。 1.Vim的工作模式 vim共有三種模式: 1)命令模式:控制游標移動,可對文字進行復制、貼上、刪除和查詢等工作; 2)插入模式:可以正常編輯文字內容; 3

Django文字編輯KindEditor的使用和圖片上傳

Blog中有文章Model,文章內容會包括各種格式的資料,比如:圖片、超連結、段落等。為了達到這個目的,我們可以使用富文字編輯器。我們有多重選擇來使用富文字編輯器,比如kindeditor、django-ckeditor、自定義ModelAdmin的媒體檔案。這樣就將kindeditor加上了富文字編輯器。4

【Linux】預設文字編輯 vim 的入門與進階

### Linux 基本操作 vim 篇 --- #### vim 簡介 ---- vim 是 Linux 上最基本的文字編輯工具,其地位像是 Windows 自帶的記事本工具,還要少數的 Linux 系統自帶 leafpad 編輯器,leafpad 的操作介面更像是 Win 的記事本,可以使用滑

Vue如何引入CKeditor 文字編輯

1、下載編輯器包:https://www.npmjs.com/package/ckeditor 2、放到靜態資源目錄中  在index.html中引入檔案ckeditor.js <script src='static/ckeditor/ckeditor.js' type="

在網頁使用富文字編輯editor+vue

先下載一個富文字編輯器(官網地址) 在vue中新建一個editor.vue <template> <div> <script id="editor" type="text/plain"></script> </div

Pythonmysql資料庫儲存富文字編輯的內容

使用python 模組MySQLdb自帶的針對mysql的字元轉義函式 escape_string """insert into csdn_test(message) VALUES("%s");""" % (pymysql.escape_string(item['content']))

vue引入wangEditor富文字編輯

1.wangEditor —— 輕量級 web 富文字編輯器,配置方便,使用簡單。支援 IE10+ 瀏覽器。 下載wangEditor:npm install wangeditor(英文小寫) 官網:www.wangEditor.com 文件:www.kancloud.cn/wa

vue同時使用element元件的upload上傳圖片和wangEditor富文字編輯

1.wangEditor —— 輕量級 web 富文字編輯器,配置方便,使用簡單。支援 IE10+ 瀏覽器。 下載wangEditor:npm install wangeditor(英文小寫) 官網:www.wangEditor.com 文件:www.kancloud.cn/wa

Qt文字編輯實現語法高亮功能(Qscitinlla)

Qt中文字編輯器實現語法高亮功能(Qscitinlla) Scintilla是一個免費、跨平臺、支援語法高亮的編輯控制元件。它完整支援原始碼的編輯和除錯,包括語法高亮、錯誤指示、程式碼完成(code completion)和呼叫提示(call tips)。能包含標記(marker)的頁邊(mar

讓富文字編輯支援複製doc多張圖片直接貼上上傳

Chrome+IE預設支援貼上剪下板中的圖片,但是我要釋出的文章存在word裡面,圖片多達數十張,我總不能一張一張複製吧? 我希望開啟文件doc直接複製貼上到富文字編輯器,直接釋出   感覺這個似乎很困難,因為Ueditor本身不支援,粘貼後直接就是空白,這裡面一定有原因。 好,開始嘗試UM

在Django的admin使用富文字編輯 CKEditor

開發環境 : Python 3.5 Django 1.11 CKEditor安裝: pip install django-ckeditor Django的settings.py中的註冊和配置 在INSTALL_APP進行註冊: ‘cked

vue2.0專案使用百度Ueditor富文字編輯

1.首先下載靜態檔案 https://ueditor.baidu.com/website/download.html 2.然後,進行配置 首先把官網下載的Ueditor資源,放入靜態資源src/static中。 修改ueditor.config.js中的window.UEDITO

Go語言環境安裝,驗證go語言環境、使用文字編輯編寫一個go hello world,Go lang IDE安裝,在golang新建一個go程式

1 Golang語言環境安裝包下載 https://www.golangtc.com/ 下載: go1.9.2.windows-amd64.msi 和 go1.9.2.windows-amd64.zip 2 golang語言環境安裝 本筆記使用go1.10.2.window

angularjs簡單使用kindeditor富文字編輯

如何在angularjs中快速使用kindeditor富文字編輯器 ? 先引入相關的css樣式和js檔案: <!-- 富文字編輯器 --> <link rel="stylesheet" href="../plugins/kindedit

Mac 較好解決文字編輯執行程式碼出現中文亂碼問題

此方法針對-Mac終端UTF-8編碼方式下,部分軟體(比如 Visual Studio code, Eclipse時)執行程式碼時出現中文亂碼的問題。 問題引入: 很迷惑的一件事,Mac終端是UTF-8編碼方式,卻在部分軟體執行外界程式碼(這裡指的是像win

正則化與萬用字元便於查詢和替換批量處理,使用在word,notepad++等文字編輯

我們常常使用查詢替換的方式來處理相關資料,可是當你要批量替換隻用一些相同字元分文字時,就會顯得很笨拙。 比如:     Line 5974: DI 10.13182/NT96-A15844     Line 6078: DI 10.1109/ISIC.1996.55623

Vue專案使用ueditor富文字編輯(一)

Ueditor專案下載地址:http://ueditor.baidu.com/website/ 這裡使用php版本(如果後端是java就下載完整版和php版,在完整原始碼版中有java的程式碼,