2009-03-25 8 views
4

に問題が、それは動作しません:jQueryのMAXLENGTH属性私は属性「MAXLENGTH」とTEXTAREA要素の後にノードを追加しようとしているjQueryのバージョン1.2.3でテキストエリア

$("textarea[@maxlength]").after("<b>Aint working</b>");

これはHTMLですコード:

<textarea maxlength="500">This is a test.</textarea>
<textarea maxlength="250">Yet another line.</textarea>
<textarea maxlength="125">Bar or foo, whatever.</textarea>

奇妙なことは、属性をmaxlengthに変更した場合です。 relそれはうまく動作します!

この実際の生活の例をご覧ください: http://www.host2000.be/_temp/jquery_tests_counter.html

PS:私は、もはやjQueryの1.3でサポートされているが、これは問題とは何の関係もありません[@attribute]表記の意識です。

答えて

3

あなたのバージョンのjQueryでは、ちょっとしたトリックでしか動作しません。 textareaの暗黙の値は、ブラウザごとに異なる値を持ちます。たとえば、Firefoxの場合、暗黙的な値は-1です。

ので、Firefoxの上で動作するため、スクリプトには、次の操作を行う必要があります

$("textarea[@maxlength!=-1]").after("<b>Aint working</b>"); 

Hereあなたがmaxlength属性の暗黙の値についての詳細情報を見つけることができます。

お楽しみください!

+0

ちょっと変だけど、うまくいきます! – bart

+0

この記事によれば、jQuery 1.6ではこれが修正されています。 –

3

暗闇で撮影:maxlengthがvalid attribute for textareasではない可能性があります。

編集:jQuery 1.3でサンプルを試して、@を削除したところ、完璧に機能しました。

EDIT#2:jQuery 1.2.6を使用すると、@なしでも動作します。削除してみましたか?

+0

@ 1.2.6では動作しませんが、これはおそらく以下の理由によるものです。 – bart

+0

私は1.2.6で試してみた@ ...私は夢中ではない! :P – Seb

+0

ところで、私はOperaで試した...多分それが私のために働いた理由:P – Seb

関連する問題