Текст по умолчанию для текстовой области выровнен неправильно - PullRequest
0 голосов
/ 16 июня 2011

У меня есть текстовое поле ниже. Когда я запускаю код, текст, который должен быть в текстовой области при обновлении, не выравнивается по левому краю. Это мешает мне использовать события javascript onfocus и onblur, потому что, когда я сравниваю строку в окне, появляются дополнительные пробелы, которые отличают ее от «Ответить на эту проблему ...». Есть ли способ сделать этот текст по умолчанию выровняйте по левому краю и сверху текстовой области без лишних пробелов, которые, я думаю, генерируются каким-то образом из php.

код:

<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;
}

Ответы [ 4 ]

1 голос
/ 16 июня 2011

Вместо этого вы можете обрезать значение текстовой области перед сравнением его с «Ответить на эту проблему ...».

Например,

if($.trim($('#box').val()) == 'Answer this problem...') { /* do something */ }
0 голосов
/ 16 июня 2011

Все пробелы в текстовой области фактически отображаются как содержимое (немного похоже на

tag).</p>

<p>So to avoid this, just start your dynamic content directly after closing the <textarea ...>:</p>

<pre><code><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>
</code>
0 голосов
/ 16 июня 2011

Это потому, что вы добавляете дополнительное пространство из новой строки и вкладок. Вместо этого вы хотели бы это:

<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().

0 голосов
/ 16 июня 2011

Что ж, у вас много пробелов между стартовым тегом 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...