-
Ext.form.HtmlEditor で maxLength バリデート
Ext.form.HtmlEditor で maxLength バリデート
お世話になっております。
Ext.form.HtmlEditor のバリデートについてアドバイスをいただきたいです。
HtmlEditor には maxLength が実装されていないようなのですが、
maxLength が使えるよう拡張するコードなどお教えいただきたいです。
ExtJS3では海外フォーラムで、このような話題がいくつかあがっていたようなのですが、
お恥ずかしながら勉強が足りずExtJS4用に改変することができませんでした…。
また、ExtJS4にバージョンが上がっても実装されていないということは、
HtmlEditoer で maxLength を使用するのになにかよくない理由などがあるのでしょうか。
どうか、ご助言のほどよろしくお願いいたします。
【動作環境】
ExtJSのバージョン: 4.1 Beta 2
-
回答ではありませんので悪しからず…
まず、探し出したEXT3のURLは張っておいた方が、レスが付きやすいと思います。
HtmlEditor に maxLength が無いのは、付ける意味があまり無いからではないでしょうか。
ユーザーが入力したテキストに対し、HTMLタグが無数に設定することが出来ます。
ということは、maxLength は何文字に設定するのでしょうか?1万文字?2万文字?
さらに日本語の場合は、マルチバイト(1文字換算を2byteや3byte)の考慮も必要です。
「なので、maxLength を指定しても意味が無い。」と開発者は考えたんじゃないでしょうか。
(私の適当です(笑))
なので、私としてはsubmit時にチェックしても良いんじゃ…?と思いました。
DBの場合は、INSERTエラーを取るのも一つの手かと…
(怒られそうだな…)
ちなみに「Ext.form.field.HtmlEditor」クラスには、「Ext.form.field.Field」がmixinsされています。
なので「Ext.form.field.HtmlEditor」クラスを継承した独自クラスを作って「getErrors」ファンクションをオーバーライドしてやれば良いのでは…
その中で、エラーチェック、エラーメッセージの設定を行えばいける気がします。
エラーチェックと、エラーメッセージの処理は「Ext.form.field.Text」を参考にすれば大丈夫な気がしてます。
(ただし、試してないので、内容の保証はしかねます♪
)
補足:
Extjsのソースは、解凍フォルダの「ext-4.1-rc3\extjs-4.1.0-rc3\src\form\field」にあります。
-
ご助言いただきましてありがとうございます。
このような仕様になっている意味、なるほどと思います。
拡張した独自クラスを作ってやれそうなので、
調べながらやってみようと思います。
(ただ、ご提案のとおり必要な場合のみsubmit前チェックを入れるのが、一番手軽そうですね!)
ご返信遅れて失礼いたしました。
アドバイスありがとうございました!
Sencha is used by over two million developers. Join the community, wherever you’d like that community to be
or Join Us