如何为html <textarea>?</textarea>添加默认值

时间:2011-05-15 07:59:45

标签: html textarea

我想为html <textarea>设置默认值。我从一个材料中读到,要添加默认值,您必须执行<textarea>This is default text</textarea>之类的操作。我这样做但它不起作用。什么是正确的做法?

11 个答案:

答案 0 :(得分:550)

这是我的jsFiddle示例。这很好用:

<textarea name='awesome'>Default value</textarea>

答案 1 :(得分:84)

您可以使用placeholder Attribute,它不会添加默认值,但可能正是您要关注的内容:

<textarea placeholder="this text will show in the textarea"></textarea>

在这里查看 - http://jsfiddle.net/8DzCE/949/ enter image description here

重要提示(正如Jon Brave在评论中所建议的那样)

占位符属性未设置textarea的值。而不是&#34;占位符属性表示一个简短的提示(一个单词或短语),用于在控件没有值时帮助用户输入数据。 [一旦用户点击进入textarea,它就会消失]。它永远不会作为&#34;默认值&#34;为了控制。如果你想要,你必须把所需的文字放在这里是实际的默认值,按照其他答案

答案 2 :(得分:16)

如果要将数据库中的信息带入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> 

答案 3 :(得分:8)

如果您在项目中使用 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>

示例2(不使用ng-init):

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', [ '$scope', function($scope){
  $scope.foo = 'Some default value';
}]);
<!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-model='foo'></textarea>
    </div>
  </body>
</html>

答案 4 :(得分:5)

当我做这样的事情时,它对我有用:

<textarea name="test" rows="4" cols="6">My Text</textarea>

答案 5 :(得分:4)

此外,这对我来说非常有效:

<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代码插在和标签之间。

答案 6 :(得分:4)

一些注释和说明:

  • 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='',因为它会被插入的文字覆盖。

答案 7 :(得分:3)

占位符无法设置文本区域的默认值。你可以使用

<textarea rows="10" cols="55" name="description"> /*Enter default value here to display content</textarea>

如果您将其用于数据库连接,那么这是标记。如果您使用的是php以外的其他语言,则可以使用不同的语法。对于php:

e.g:

<textarea rows="10" cols="55" name="description" required><?php echo $description; ?></textarea>

必需命令可以最大限度地减少使用php检查空字段所需的工作量。

答案 8 :(得分:1)

您可以使用this.innerHTML。

&#13;
&#13;
<textarea name="message" rows = "10" cols = "100" onfocus="this.innerHTML=''"> Enter your message here... </textarea>
&#13;
&#13;
&#13;

当文本区域被聚焦时,它基本上使得textarea的innerHTML成为空字符串。

答案 9 :(得分:-1)

请注意,如果您对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的开始和结束标记之间的文本不同。

答案 10 :(得分:-1)

您还可以添加“值”属性并进行设置,如下所示:


<textarea value="your value"> </textarea>