最初に1行しか持たないテキストエリアを取得するにはどうしたらいいですか?テキストが行の最後に到達したときに、これは最大5行までですか?このようなテキストエリアのサイズに応じてテキストエリアを拡張する(jquery)
6
A
答えて
1
何か:
<textarea id="foo" rows="1" cols="40"></textarea>
$(function() {
$("#foo").on("keyup", function() {
if ($(this).attr('rows') < 5 &&
parseInt($(this).val().length/$(this).attr('cols')) >= $(this).attr('rows'))
$(this).attr("rows", parseInt($(this).attr("rows"))+1);
});
});
編集わずかな改善が改行を処理する:
$(function() {
$("#foo").on("keyup", function (e) {
if ($(this).attr('rows') < 5)
{
if (
parseInt($(this).val().length/$(this).attr('cols'))+
($(this).val().split("\n").length-1)
>=
$(this).attr('rows')
)
$(this).attr("rows", parseInt($(this).attr("rows"))+1);
if (e.keyCode == 13)
{
$(this).attr("rows", parseInt($(this).attr("rows"))+1);
}
}
});
});
0
弾性jQのチェックueryプラグイン:http://unwrongest.com/projects/elastic/
CSSのmax-heightプロパティをtextareaのmaxlengthと組み合わせて使用すると、5行に制限できます。
0
ダウンロードこのプラグイン:http://james.padolsey.com/demos/plugins/jQuery/autoresize.jquery.js
$('textarea#comment').autoResize({
// On resize:
onResize : function() {
$(this).css({opacity:0.8});
},
// After resize:
animateCallback : function() {
$(this).css({opacity:1});
},
// Quite slow animation:
animateDuration : 300,
// More extra space:
extraSpace : 40
});
1
This A List Part articleは最高のこの機能を実装する方法についての深い、ステップバイステップで説明します。
1
私はJake Feaselの答えから考えました。それは、拡張するだけでなく、より少ないコンテンツがある場合のテキスト領域を縮小するためにも働きます。
HTML
<textarea id="foo" rows="1" cols="40"></textarea>
<div id="stat"></div>
また、テキストエリアを持っていると、これが必要なsepatate divのコンテンツに応じて必要な行
CSS
#foo
{
resize:none;
}
の理想的な数を表示このハンドラを使用してサイズ変更された場合、コードは機能しなくなります。
JS
$(function() {
$("#foo").on("keyup", function (e) {
var idealRows = parseInt($(this).val().length/$(this).attr('cols'))+
($(this).val().split("\n").length-1)+1 ;
var rows = $(this).attr('rows');
// for the bugging scroll bar
if(rows > 4) $('#foo').css('overflow','auto')
else $('#foo').css('overflow','hidden')
// for expanding and contracting
if((idealRows > rows) && (rows < 5) || (idealRows < rows) && (rows > 1))
$(this).attr("rows", idealRows);
});
});
デモ:それはまた、KeyDownイベントとkeyUpイベントの間でポップアップ表示のスクロールバーの世話をすることhttp://jsfiddle.net/roopunk/xPdaP/3/
注意してください。 IMO:それはまあまあです。
注 ・ホープこのことができます!:)
関連する問題
- 1. ノックアウトjsを使ってテキストエリアを自動拡張する
- 2. divに含まれるテキストエリアを拡張する
- 3. テキストエリアを自動拡張した後にスクロールバーを移動する
- 4. jqueryのは - テキストエリア
- 5. コピー時にテキストエリア(JQuery)
- 6. FFでのテキストエリアと同じサイズで表示するクロム
- 7. テキストエリアのサイズを垂直に変更
- 8. テキストエリアにテキストを追加する - Jquery
- 9. jQueryのテキストエリアの入力
- 10. テキストに合わせてテキストボックス/テキストエリアのサイズを変更する
- 11. jQueryプラグイン:テキストエリアの文字カウント
- 12. ファイルとテキストエリアのjQuery検証
- 13. jquery - カウント文字のテキストエリア
- 14. スクロールまでテキストエリアでjQueryを使って
- 15. テキストエリアに
- 16. テキストエリア
- 17. テキストエリア
- 18. ブートストラップモーダルダイアログのサイズ変更可能テキストエリア
- 19. jQueryを使ってテキストエリアの行数を変更するには
- 20. テキストエリアがCSSに応答しません
- 21. jQueryクローンフォームフィールドグループwp_editor()関数をテキストエリアに追加
- 22. jqueryでテキストエリアにテキストを挿入
- 23. jQueryのセレクタ - [OK]を次の列のテキストエリア
- 24. jqueryを使用してテキストエリアをクリアするには
- 25. jQueryを使って文字列をテキストエリアに追加する
- 26. 拡張子に応じてファイルを解析する方法
- 27. テキストエリアの内容をazureに.java拡張子のファイルとして保存することはできますか?
- 28. jQuery .trigger()を使用してクリックイベントからモバイルにフォーカスするテキストエリア
- 29. Javascript:テキストエリアの各行と別のテキストエリアのすべての行を比較する
- 30. のTinyMCEをテキストエリア
ユーザーがクリックすると入力した場合何?テキストボックスは展開されません。 – codedude
ええ、それは問題だと思います。詳細はこちら:) –
入力を許可してテキストエリアを拡張するのは簡単な修正ですか? – user852974