Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Валидация textarea (https://javascript.ru/forum/misc/63334-validaciya-textarea.html)

diga 01.06.2016 09:18

Валидация textarea
 
Добрый день формучане, не подскажите как сделать валидацию поля textarea проблема следующая:
имеется поле textarea куда вводиться текст, имеется так же кнопка при нажатии которой введенный текст появляется на странице в теге <p>"Введенный текст"</p>

Нужна как то сделать валидацию, чтоб введенный текст не мог содержать разметку html или js, то есть, если я напишу текст в виде "<h1>HELLO</h1>" данная разметка не появлялась на странице, но при этом была бы возможность отправлять сообщения типа "Я заголовок определяю так: <h1> Заголовок </h1>"
т.е. он должен воспринимать не как тег html а как обычный текст, тоже касается и для js

как такое можно реализовать? спасибо!

laimas 01.06.2016 10:28

Можно. Либо используете ВВ-теги, а "Я заголовок определяю так: <h1> Заголовок </h1>", так не пойдет.

Что касается запрещенного: скрипты, апплеты и т.п., то это должен проверять и принимать решение сервер.

diga 01.06.2016 10:38

Цитата:

Сообщение от laimas (Сообщение 418206)
Можно. Либо используете ВВ-теги, а "Я заголовок определяю так: <h1> Заголовок </h1>", так не пойдет.

Что касается запрещенного: скирпты, апплеты и т.п., то это должен проверять и принимать решение сервер.

а если без отправки на сервер? допустим все это на стороне клиента только, можно каким нибудь образом реализовать?

Botik21 01.06.2016 11:08

p.textContent = textarea.value;

laimas 01.06.2016 11:19

Цитата:

Сообщение от diga
а если без отправки на сервер?

То есть по барабану - клиент проверил значит можно доверять? Ну тогда полный аут будет.
На клиенте все проверки, это чисто сервис, дабы предупредить, но ни в коем случае не доверять.

diga 01.06.2016 11:42

Цитата:

Сообщение от Botik21 (Сообщение 418211)
p.textContent = textarea.value;

в моем случае я добавляю сообщение

$(" #message").append("<p>" + message + "</p>");


message может содержать html теги, но в результате добавиться должен все ввиде текста, пробовал обернуть все в виде textContent но это будет не правильно

diga 01.06.2016 11:43

Цитата:

Сообщение от laimas
На клиенте все проверки, это чисто сервис, дабы предупредить, но ни в коем случае не доверять.

мне бы для начало с клиентом разобраться, а потом уже буду насчет сервера думать.

Botik21 01.06.2016 11:53

Почему не правильно?
Как вариант:
var p = document.createElement('p');
message = p.textContent = message;
$(" #message").append("<p>" + message + "</p>");


Ещё можете сделать так:
message = message.replace(/&/gm,'&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');

Alex_63 01.06.2016 11:56

diga,
$("#message").append("<p>" + message.replace(/&/gm,'&amp;').replace(/</gm,'&lt;').replace(/>/gm,'&gt;') + "</p>");

laimas 01.06.2016 12:06

Цитата:

Сообщение от diga
мне бы для начало с клиентом разобраться, а потом уже буду насчет сервера думать.

Тогда не понятно. Если на клиенте вводится и можно посмотреть как это выглядит, зачем же удалять теги? А если через сервер и предпросмотр, то причем тут клиент?


Часовой пояс GMT +3, время: 02:28.