我有一个简单的文本区域,像这样的形式:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
    <?php if($siteLink_val) echo $siteLink_val; ?> 
</textarea>

我一直在这个文本区域得到额外的空白。当我tab到它,我的光标就像在文本区域的中间,而不是在开始?怎么解释呢?


当前回答

基本上应该是这样

<textarea>something here with no spaces in the begining</textarea>

如果有一些预定义的空间,让我们说由于代码格式如下

<textarea>.......
....some_variable
</textarea>

点所示的空格在每次提交时不断增加。

其他回答

简而言之: <textarea>应该立即在它开始的同一行上关闭。


一般做法:这将增加代码中用于缩进的换行符和空格。

<textarea id="sitelink" name="sitelink">
</textarea>

正确的做法

<textarea id="sitelink" name="sitelink"></textarea>

另一种方法是使用javascript:

//jquery
$('textarea#someid').html($('textarea#someid').html().trim());

//without jquery
document.getElementById('someid').innerHTML = document.getElementById('someid').innerHTML.trim();

这就是我所做的。删除代码中的空格和换行符会使行太长。

为了让它看起来更简洁,可以考虑使用三元操作符:

<textarea><?=( $siteLink_val ? $siteLink_val : '' );?></textarea>

如果您仍然喜欢使用缩进,请在打开<?PHP标签,如下所示:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php // <--- newline
    if($siteLink_val) echo $siteLink_val; // <--- indented, newline
?></textarea>

仔细查看您的代码。其中,已经有三个换行符,在</textarea>之前有大量的空白。首先删除这些标签,这样标签之间就不再有换行符了。这可能已经奏效了。