Я хочу установить значение по умолчанию для моего html <textarea>
. Я прочитал из материала, что для добавления значения по умолчанию вам нужно сделать что-то вроде <textarea>This is default text</textarea>
. Я сделал это, но это не сработало. Какая правильная вещь?
Как добавить значение по умолчанию для html <textarea>?
Ответ 1
Вот мой пример jsFiddle. это прекрасно работает:
<textarea name='awesome'>Default value</textarea>
Ответ 2
Вы можете использовать placeholder Атрибут, который не добавляет значения по умолчанию но может быть то, что вы ищете:
<textarea placeholder="this text will show in the textarea"></textarea>
Проверьте здесь - http://jsfiddle.net/8DzCE/949/
Важное примечание (как было предложено Jon Brave в комментариях) :
Атрибут Placeholder не устанавливает значение текстового поля. Скорее "Атрибут placeholder представляет собой короткий намек (слово или короткую фразу), предназначенный для помощи пользователю с вводом данных, когда элемент управления не имеет значения" [и он исчезает, как только пользователь нажимает на текстовое поле]. Он никогда не будет действовать как "значение по умолчанию" для элемента управления. Если вы этого хотите, вы должны поместить нужный текст внутри. Вот фактическое значение по умолчанию, как и другие ответы здесь.
Ответ 3
Если вы хотите передать информацию из базы данных в тег textarea для редактирования: Входной тег не отображает данные, которые занимают несколько строк: строки нет работы, ввод тега - одна строка.
<!--input class="article-input" id="article-input" type="text" rows="5" value="{{article}}" /-->
Тэг textarea не имеет значения , но отлично работает с ручками
<textarea class="article-input" id="article-input" type="text" rows="9" >{{article}}</textarea>
Ответ 4
На всякий случай, если вы используете Angular.js в своем проекте (как и я) и настроили ng-model
для вашего <textarea>
, установив по умолчанию только как:
<textarea ng-model='foo'>Some default value</textarea>
... не будет работать!
Вам нужно установить значение по умолчанию для textarea ng-model
в соответствующем контроллере или использовать ng-init
.
Пример 1 (с использованием ng-init
):
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl', [ '$scope', function($scope){
// your controller implementation here
}]);
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body ng-app='myApp'>
<div ng-controller="MyCtrl">
<textarea ng-init='foo="Some default value"' ng-model='foo'></textarea>
</div>
</body>
</html>
Ответ 5
Когда я делаю что-то подобное, это сработало для меня:
<textarea name="test" rows="4" cols="6">My Text</textarea>
Ответ 6
Кроме того, это работало очень хорошо для меня:
<textarea class="form-control" rows="3" name="msg" placeholder="Your message here." onfocus='this.select()'>
<?php if (isset($_POST['encode'])) { echo htmlspecialchars($_POST['msg']);} ?>
</textarea>
В этом случае $_POST ['encode'] пришел из этого:
<input class="input_bottom btn btn-default" type="submit" name="encode" value="Encode">
Код PHP был вставлен между тегами и тегами.
Ответ 7
Несколько примечаний и пояснений:
-
placeholder=''
вставляет ваш текст, но он неактивен (в формате стиля подсказки) и в момент щелчка по полю ваш текст заменяется пустым текстовым полем. -
value=''
не является атрибутом<textarea>
и работает только для тегов<input>
, т.е.<input type='text'>
и т.д. Я не знаю, почему создатели HTML5 решили не включать это, но так, как сейчас. -
Лучший способ вставки текста в элементы
<textarea>
был здесь правильно обозначен как:<textarea> Desired text to be inserted into the field upon page load </textarea>
Когда пользователь нажимает на это поле, они могут редактировать текст и он остается в поле (в отличие отplaceholder=''
). - Примечание. Если вы вставляете текст между тегами
<textarea>
и</textarea>
, вы не можете использоватьplaceholder=''
, поскольку он будет перезаписан вашим вставленным текстом.
Ответ 8
Заполнитель не может установить значение по умолчанию для текстовой области. Ты можешь использовать
<textarea rows="10" cols="55" name="description"> /*Enter default value here to display content</textarea>
Это тег, если вы используете его для подключения к базе данных. Вы можете использовать другой синтаксис, если вы используете другие языки, кроме php. Для php:
например:
<textarea rows="10" cols="55" name="description" required><?php echo $description; ?></textarea>
требуемая команда минимизирует усилия, необходимые для проверки пустых полей с помощью php.
Ответ 9
Вы можете использовать this.innerHTML.
<textarea name="message" rows = "10" cols = "100" onfocus="this.innerHTML=''"> Enter your message here... </textarea>
Ответ 10
Вы также можете добавить атрибут "value" и установить его так:
<textarea value="your value"> </textarea>
Ответ 11
Обратите внимание, что если вы внесли изменения в textarea, после того, как он был отрендерен; Вы получите обновленное значение вместо инициализированного значения.
<!doctype html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
$(function () {
$('#btnShow').click(function () {
alert('text:' + $('#addressFieldName').text() + '\n value:' + $('#addressFieldName').val());
});
});
function updateAddress() {
$('#addressFieldName').val('District: Peshawar \n');
}
</script>
</head>
<body>
<?php
$address = "School: GCMHSS NO.1\nTehsil: ,\nDistrict: Haripur";
?>
<textarea id="addressFieldName" rows="4" cols="40" tabindex="5" ><?php echo $address; ?></textarea>
<?php echo '<script type="text/javascript">updateAddress();</script>'; ?>
<input type="button" id="btnShow" value='show' />
</body>
</html>
Как вы можете видеть, значение textarea будет отличаться от текста между открывающим и закрывающим тегом беспокойства textarea.