2010-10-27 5 views
3

Я заполняю текстовое поле с предыдущим входом пользователя. Это извлекается из базы данных и устанавливается как содержимое сервера textarea.заполнение текстового поля специальными символами

Кажется, у нас проблема с опечаткой и комбинацией специальных символов. если пользователь вводит &#6 изначально, когда я пытаюсь заполнить свою текстовую область тем, что он просто отображает маленький квадрат, как его интерпретирует значение, закодированное символом.

Создание файла HTML со следующим демонстрирует мою проблему.

<textarea name"mytextarea">some text &#5 some more text </textarea 

это опечатка, пользователь намеревался ввести # 5 & # 6 так исправить это, просто чтобы гарантировать, когда пользователь помещает амперсанд в том, что у меня есть пространство по обе стороны от него прежде чем я покажу его в текстовом поле. Это просто особенная проблема, обратная от того, что я использую для просмотра.

Мне любопытно, есть ли способ получить текстовую область для отображения символов, таких как пользователь, набрал ее и сохранил это путем отправки формы. Чтобы сохранить над головой необходимость синтаксического анализа или html кодировать текст перед помещением в текстовое поле.

Спасибо, Muchly

ответ

8

Внутри textarea, вам необходимо преобразовать следующие символы в их HTML-сущности:

& => &amp; 
> => &gt; 
< => &lt; 

Таким образом, &#5 станет &amp;#5. Визуально, пользователю, он останется &#5.

Вы не указываете язык на стороне сервера, который используете. В PHP, правильная функция будет htmlspecialchars()

+0

Я попытаюсь создать тест, чтобы проверить это, но если преобразовать в HTML enttities копируется в другой текстовой через JavaScript затем представили бы обработка страницы формы receive & # 6 или $ amp; # 6? Вот где я, вероятно, столкнусь с проблемой. – Nathan

+0

Если ваш HTML содержит '', тогда пользователь увидит текстовое поле, содержащее текст '& # 6', и если они отправят, сервер получит текст' & # 6'. Именно так вам нужно указать символ амперсанда на вашей странице, а не escape-символ, начинающийся с объекта HTML. –

Смежные вопросы