В то время как новые линии (возврат каретки & линия подачи) технически разрешены в < ввода> 'ы скрытые состояния , они должны быть экранированы для совместимости со старыми браузерами. Вы можете сделать это, заменив все Возвраты каретки (\u000D
или) и все фиды линий (\u000A
или \n
) с проприетарными строками, которые признаны вашим приложением как возврат каретки или новая линия (а также экранированы, если они присутствуют в оригинале строка).
Просто символьные объекты здесь не работают, из-за несоответствующие браузеры, возможно, зная
и
новые линии и избавляя их от значения.
Пример
Например, в PHP, если вы должны были echo
переданное значение в текстовое поле, вы должны включать в себя новые строки (и неэкранированный строку).
< TextArea> Текст с \ включен
и новая строка с \ г \ п, представленными значениями </текстовым>
Однако в PHP, если вы были echo
в значение в значение значение атрибут тега < input, вы могли бы избежать новых строк с вашими проприетарными строками (например, \r
и \n
) и избегать любых экземпляров ваших собственных строк в представленном значении.
< тип входного = "скрытые" значение = "Какой-то текст с \\ включены \ г \ Nand новая линия \\ г \\ п в представленном значении">
Затем перед используя значение в другом месте (вставляя в базу данных, отправляя по электронной почте и т. д.), при необходимости обязательно отмените представленное значение.
ободрение
Как еще заверение, я спросил WHATWG и Ян Хиксон, редактор HTML спецификации в настоящее время, ответил:
bfrohs Вопрос типа о < входе = скрыт> - Разрешены ли каналы и возврат каретки в значение? Они специально запрещены в состоянии «Текст» и «Поиск», но не упоминается о скрытом состоянии. И, если нет, существует ли приемлемое решение HTML для хранения данных формы из текстового поля?
Хиксите да, они разрешены // IIRC // для унаследованных причин Вы можете захотеть, чтобы избежать их, хотя, как некоторые браузеры нормализуют их прочь // я забыть, если мы установили, что или нет // в спецификации
Source
Если браузер поддерживает форму представления, то, скорее всего, также понимают, что ' и' 'новые линии, и если она неправильно удаляет новые строки, он будет также удалить все вхождения' 'и' '. – 0b10011