Jump to content
  • 0

Позиция курсора в textarea


Ornament
 Share

Question

Создаю простенькую форму с одним полем textarea, но при щелчке мышью по этому полю курсор устанавливается не в верхний левый угол, а в месте щелчка.

Если при загрузке страницы применяю небольшую функцию на JS,

<script type="text/javascript">
function ClearForm()
{
document.form.text.value='';
}
</script>
...

<body onload="ClearForm()">
<form action="" method="post" name="form">
<textarea cols="40" rows="10" wrap="virtual" name="text"></textarea>
</form>

...

курсор устанавливается так, как положено.

В чём может быть проблема?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Не помогает ни soft, ни hard. В поле откуда-то берутся лишние пробелы, после удаления которых вручную курсор устанавливается на начало, а после обновления страницы снова в месте щелчка. А если в поле вывожу текст из БД, то его начало может быть выведено с любой позиции в поле, причем после текста образуются пробелы в количестве, равному числу выведенных символов. Думал, может из-за кэширования, но установка заголовков header с запретом кэширования проблему не решила. Если использовать очистку поля приведённым выше способом (#1), то выводимый текст появляется на секунду, затем исчезает.

Edited by Ornament
Link to comment
Share on other sites

  • 0

Событие onload для body возникает тогда, когда веся страница загружена, в том числе и текст в textarea. Вот и получается, что текст загрузился, а потом вы его удатяете.

Установка курсора в месте нажатия - нормальное поведение броузера, чтобы его изменить устанавливайте принудительно позицию курсора на событии onclick поля textarea.

Link to comment
Share on other sites

  • 0

Нашёл проблему. Пустяковая, а полмесяца голову ломал. И как сразу не догадался. А вчера лёг спать и меня торкнуло :( Вобщем, между <textarea></textarea> у меня вставлен код на php, ну и закрывающий тег поля textarea находился на другой строке, плюс ещё некоторое количество переводов строк. Естественно, все они при загрузке страницы преобразовались в ненужные пробелы. Код переписал и вывел за пределы поля, внутри оставил только одну переменную с echo, ну и выстроил всё в одну строку. Сейчас всё ОК.

<?php
php-код
?>
<textarea><?php echo $message; ?></textarea>

Может кому и пригодится решение проблемы.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy