1


1

テキストが追加されたときにテキストエリアの高さを適切に拡張できる実際に動作するjQueryプラグインを知っている人はいますか?

私はautogrowとgrowfieldの両方のプラグインを試してみましたが、どちらもうまく機能していないようです。 両方とも彼らが適切に成長しない、そして/または彼らの最大の高さを時々無視するという問題を抱えている。 私はFWIWをテストするためにOSX上でFF 3.5を使用しています。

Googlingに登場した3番目のものがありましたが、そのデモページは動作しないため、試してみる必要はありませんでした。

4 Answer


0


https://stackoverflow.com/questions/7477/autosizing-textarea[このSAの答えは助けになると思います] JQueryではありませんが、コードは自分で実装するのに十分小さいです。


0


私の現在のプロジェクトに取り組んでいるとき、私は堅実で信頼できる成長しているテキストエリアプラグインを見つけることができないという同様の問題を抱えていました。 私はGrowfieldに落ち着いたのですが、満足しているとは言えません。

私が対処できたことに遭遇した1つの問題は、growfieldが(他のほとんどすべてのプラグインに加えて)常にテキスト領域に余分な行を追加することを主張したことです。 これは大まかな開発コードで、現在はSafariとFirefoxのみを対象としていますが、これはgrowfieldのgetDummyHeight()関数の最後に追加したコードです。

if($ .browser.safari)がh-sr.lhを返す* 2 sr.pt sr.pb。 if($ .browser.mozilla)return h-sr.lh * 2 sr.pt * 2 sr.pb 5;

これはブラウザ検出を使用し(これは悪い習慣です)、おそらく私たちのレイアウトとCSSに依存していますが、あなたのデザインでうまく動作させるためにいくらかの微調整を行うことができるかもしれません。

ご参考までに、(growfieldは少しわかりにくいですが)hはtextareaの高さ、sr.lhは行の高さ、sr.ptは上部のパディング、sr.pbは下部のパディングを表します。 変数の完全なリストはprepareSizeRelated()関数にあります。


0


あなたと同じように、私はたくさんのjQueryソリューションを試してみましたが、毎回普通の古いJavaScriptに戻ってきました。 jQueryがあなたの絶対的な要件ではないと仮定すると、次のようなものを使うことができます(あなたの特定のテキストエリアに合うようにxxxを調整する必要があるでしょう、〜1.3であるべきです):

function resizeTextarea(textarea){currentRows = textarea.value.split( '\ n'); newRows = 1; minRows = 4。

for(i = 0; i <currentRows.length; i){if(currentRows [i] .length> textarea.cols){newRows = Math.ceil(currentRows [i] .length / textarea.cols  -  xxx); }}

newRows = currentRows.length;

if(newRows!= textarea.rows){textarea.rows = newRows; }}


0


さて、今はあります。

このプラグインは* Autosize、*と呼ばれています。

そしてそれは* Jack Moore *によって作られました

http://www.jacklmoore.com/autosize/[ここ]をチェックしてください。

(私はこの質問が2009年からさかのぼっていることを知っていますが、多分これは将来の読者に役立つでしょう)