2012-02-07 19 views
0

Texbox Textmode = "Multiline"またはhtml textareaでユーザーコントロールを作成する必要があります。テキストに合わせてテキストボックス/テキストエリアのサイズを変更する

編集モードでは、テキストボックス/テキストエリアをサイズ変更する必要があります。私はこれのためにいくつかのjqueryプラグインを使用することができます。しかし、読み取り専用モードでは、このTextbox/textareaは無効になっており、テキストに合わせて自動的にサイズ変更(高さ)する必要があります。テキストがページを受け取ったとしても。テキストボックス/テキストエリアを読み込み専用モードで非表示にしてdiv内にテキストを表示することはできますが、編集と読み込み専用ページを同じように保ちたいと思います。

アイデア?

+0

[css-tricks](http://css-tricks.com/textarea-tricks/)に役立つかどうかは分かりません。番号7を参照してください。 –

答えて

1

読み込み専用モードでテキストエリア/入力を使用する理由 - jsを使用して、コントロールとDIVまたはPタグ(テキストを表示する)を切り替えるのと比べて、単に高さを設定しないheight:auto)そのボックスは自動的にすべてのテキストを含むサイズになりますか?

また、周囲のコンテンツで許可されていない限り、テキストエリアのサイズを変更することができます。 http://davidwalsh.name/textarea-resize

+0

編集/読み取り専用モードでページの外観が違うので、好きではありません。他の画面は2つのモードで同じように見えるので、新しい画面でそれに固執したいと思います。しかし、もし私がそれを行うなら、私はサーバー側のコントロールを表示/非表示にします。 JSでそれを行うと、コントロールが表示され、しばらくして消えてしまうことがあります。 –

+0

DIVを境界にして、テキストエリアとまったく同じように見えるようにすることができます(逆も同様です)。私は、POSTがサーバーの表示/非表示の処理をさらに遅らせるので、サーバーへのPOSTがPOSSIBLE JS/DHTMLフリッカー(この場合、何かあるとは思えません)より優れた解決策であることに同意できません不要なサーバーのトリップ、サーバーの再構築、データベースやセッションストアへのアプリケーションの起動、何もない、本当の必要なし)。 –

+0

さらに、あなたが望むものを達成するための唯一の正しい方法は、目に見えないDIVを作成し、その幅、余白、パディング、ボーダー、フォントファミリ、フォントサイズ(何かが間違っていたか)をtextareaそれにテキストを追加した後、その高さを測定し、その高さをテキストエリアに設定して、最後に一時DIVを削除します。たとえば、テキストを切り捨て(省略)する場合も同じアプローチが使用されます。とにかく、あなたはDIVを持っています。だから、私はちょうどあなたが欲しいものをする別の方法を捨てたと思う:) –

関連する問題