1

通常のテキストボックスのサイズのテキストエリアがあるとします。enter または crtl+enter を押してユーザーが入力する新しい行を作成するときに、どのように伸縮可能にしますか。

たとえば、最初の行のテキストエリアに何かを入力し、Enter キーを押すと、テキストエリアが新しい行を展開してデータを入力します。

<td>
    <textarea rows="5" cols="50" name="description[]">
        <?php echo $row[ 'description']; ?>
    </textarea>
</td>

上記は、私が言及したテキストエリアです。

4

5 に答える 5

1

jQueryを試すことができます:

$("textarea").keyup(function(e) {
    if(e.keyCode == 13) //13 is the ASCII code for ENTER
        {
            var rowCount = $(this).attr("rows");
            $(this).attr({rows: rowCount + 5});
        }
});
于 2013-08-29T01:42:26.630 に答える
1

JavaScript を使用する必要があります。具体的には、jQuery と呼ばれる JavaScript フレームワークを使用できます。この回答を確認してください: jQuery を使用してテキストエリアを自動展開する

于 2013-08-29T01:39:49.200 に答える
0

または、contenteditable を true に設定して div を使用することもできます。

<td>
  <div id="description[]" contenteditable="true">
    <?php echo $row['description']; ?>
  </div>
</td>
<input name="description[]" type="hidden" value="">

次に、隠された入力の値をdivの内部テキスト/コンテンツに設定するJS関数をフォーム送信に追加します(これはフォーム用であると仮定します)

function updateText() {
  content = document.getElementById('description[]').textContent || document.getElementById('description[]').innerText;
  document.querySelector('[name="description[]"]').value = content;
}
于 2013-08-29T01:47:09.043 に答える
0

この自動拡張 jQuery プラグインを確認してください - https://github.com/akaihola/jquery-autogrow

于 2013-08-29T01:48:36.890 に答える