2013-08-29 2 views
1

Предположим, у меня есть текстовое поле с размером обычного текстового поля, как сделать его растяжимым, когда я нажимаю enter или crtl + enter, чтобы создать новую строку для ввода пользователем.Как расширить новую строку для textarea, когда я нажимаю enter?

Например, я набираю текст в текстовой области в первой строке, затем нажимаю кнопку ввода, и текстовое поле будет расширять новую строку для ввода данных.

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

Выше текстовое поле, которое я упомянул.

ответ

1

Вам нужно будет использовать javascript. В частности, вы можете использовать javascript фреймворк под названием jQuery. Проверьте этот ответ: Auto expand a textarea using jQuery

+0

Если это можно сделать с помощью jQuery, это можно сделать, используя javascript – dc5

+1

@ dc5 Исправить. Я не хотел подразумевать, что сам jQuery был необходим. Я отредактирую свой ответ, чтобы быть более ясным. – htxryan

+0

если это можно сделать с помощью javascript, это можно сделать за меньшее время/строки кода с помощью jQuery – hammus

0

Вы можете попробовать некоторые 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}); 
     } 
}); 
+0

, куда я должен вставить этот код? – nickee

+0

http://stackoverflow.com/a/5346855/2716915 Эта работа для меня :) Хотя это длинный код, но я думаю, я понимаю рабочий процесс. Спасибо вам всем в любом случае :) – nickee

0

В качестве альтернативы - можно использовать DIV с contenteditable истинна.

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

Затем добавить функцию JS для отправки формы (при условии, что это для формы), которая устанавливает значение скрытого ввода во внутренний текст/содержание DIV

function updateText() { 
    content = document.getElementById('description[]').textContent || document.getElementById('description[]').innerText; 
    document.querySelector('[name="description[]"]').value = content; 
} 
Смежные вопросы