-
8 Sep 2010 6:19 PM #1
TextAreaの入力文字数の制限について
TextAreaの入力文字数の制限について
TextAreaに入力される文字数を制限したく、ExtJs のAPIドキュメントに記載されているように、
autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '10'}
を付けてみたところ、TextFieldになってしまいます。
以下のように、tagをtextarea にすると、表示はTextAreaになりますが、無制限に文字の入力ができてしまいます。
autoCreate: {tag: 'itextarea, type: 'text', size: '20', autocomplete: 'off', maxlength: '10'}
TextAreaの形式で入力文字数を制限する方法がありましたらご教示願います。
-
8 Sep 2010 11:17 PM #2
HTMLのtextareaではそもそもmaxlengthが使えないので、Ext.form.TextAreaのkeyupイベントなどで、文字数チェックするといった方法が一番簡単だと思います。
-
11 Sep 2010 4:06 AM #3
そうなんですね。
ということは、APIドキュメントの説明が間違っているみたいですね。
画面数が多いので、あちこちにkeyupイベントをいれるよりも設定で何とかなればと思っていたのですが...
keyupイベントで検討してみます。
フォローありがとうございました。
-
12 Sep 2010 5:20 PM #4
間違っているというよりも、autoCreateそのものの機能が、ベースとなるHTMLタグを設定できるということなので、
を指定すれば、ベースのHTMLが<input type="text" />になるので、文字数制限ができるというだけで、tagにtextareaを指定するとHTMLの仕様として文字数制限はできない、というだけです。Code:{tag:'input', type:'text'}
autoCreateの機能そのものが分かりにくいものだったりするのですが
あちこちで似たような処理をされるのであれば、keyupイベントまわりの処理を組み込んだExt.form.TextAreaを継承したクラスを作るか、プラグインを作れば手間はかからないですよ。


Reply With Quote