2011-06-15 81 views
0

我在下面有一个textarea。当我运行代码时,假设在刷新的textarea中的文本不会左对齐,并且位于顶部。这是阻止我使用javascript onfocus和onblur事件,因为当我比较框中的字符串有额外的空间,使它不同于“回答这个问题...”有没有一种方法,我可以使这个默认文本左对齐并在textarea的顶部没有任何额外的空白,我认为是从PHP生成的。Textarea的默认文本没有正确对齐

代码:

<textarea id ='box' autocomplete='off'> 
<?php 
    if (!$_SESSION['username']){ 
     echo "readonly='readonly'"; 
    } 
?> 
> 
<?php 
    if (!$_SESSION['username']){ 
     echo "Login to answer..."; 
    } 
    else { 
     echo "Answer this problem..."; 
} 
?> 
</textarea> 
在头

#answerbox{ 
    height: 200px; 
    width: 400px; 
} 

回答

0

好了,你有你的textarea开始标签和你的PHP echo内容之间有很多的空白。 (有点像<预>标签内)

<textarea id ='box' autocomplete='off' <?php 
     if (!$_SESSION['username']){ 
      echo "readonly='readonly'"; 
     } 
    ?> ><?php 
     if (!$_SESSION['username']){ 
      echo "Login to answer..."; 
     } else { 
      echo "Answer this problem..."; 
     } 
    ?></textarea> 
0

在一个文本的所有空格实际上呈现为内容。

因此,为了避免这种情况,只需直接关闭后启动动态内容< textarea的... >:

<textarea id ='box' autocomplete='off' 
       <?php 
        if (!$_SESSION['username']){ 
         echo "readonly='readonly'"; 
        } 
       ?> 
      ><?php 
        if (!$_SESSION['username']){ 
         echo "Login to answer..."; 
        } 
        else { 
         echo "Answer this problem..."; 
        } 
       ?></textarea> 
0

它,因为你添加自己的新生产线和标签额外的空间。相反,你会想这样:

<textarea id ='box' autocomplete='off' 
        <?php 
         if (!$_SESSION['username']){ 
          echo "readonly='readonly'"; 
         } 
        ?> 
       ><?php 
         if (!$_SESSION['username']){ 
          echo "Login to answer..."; 
         } 
         else { 
          echo "Answer this problem..."; 
         } 
        ?> 
       </textarea> 

另外,我会建议在比较前(删除前导/尾随空白)修剪值。这很容易做到jQuery的.trim()函数。

1

相反,您可以在将它与“回答此问题...”进行比较之前修剪textarea的值。

例如

if($.trim($('#box').val()) == 'Answer this problem...') { /* do something */ }