Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2016, 09:18
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

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

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

как такое можно реализовать? спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2016, 10:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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

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

Последний раз редактировалось laimas, 01.06.2016 в 11:22.
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2016, 10:38
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

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

Что касается запрещенного: скирпты, апплеты и т.п., то это должен проверять и принимать решение сервер.
а если без отправки на сервер? допустим все это на стороне клиента только, можно каким нибудь образом реализовать?
Ответить с цитированием
  #4 (permalink)  
Старый 01.06.2016, 11:08
Аватар для Botik21
Аспирант
Отправить личное сообщение для Botik21 Посмотреть профиль Найти все сообщения от Botik21
 
Регистрация: 01.06.2016
Сообщений: 87

p.textContent = textarea.value;
Ответить с цитированием
  #5 (permalink)  
Старый 01.06.2016, 11:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от diga
а если без отправки на сервер?
То есть по барабану - клиент проверил значит можно доверять? Ну тогда полный аут будет.
На клиенте все проверки, это чисто сервис, дабы предупредить, но ни в коем случае не доверять.
Ответить с цитированием
  #6 (permalink)  
Старый 01.06.2016, 11:42
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

Сообщение от Botik21 Посмотреть сообщение
p.textContent = textarea.value;
в моем случае я добавляю сообщение

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


message может содержать html теги, но в результате добавиться должен все ввиде текста, пробовал обернуть все в виде textContent но это будет не правильно
Ответить с цитированием
  #7 (permalink)  
Старый 01.06.2016, 11:43
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

Сообщение от laimas
На клиенте все проверки, это чисто сервис, дабы предупредить, но ни в коем случае не доверять.
мне бы для начало с клиентом разобраться, а потом уже буду насчет сервера думать.
Ответить с цитированием
  #8 (permalink)  
Старый 01.06.2016, 11:53
Аватар для Botik21
Аспирант
Отправить личное сообщение для Botik21 Посмотреть профиль Найти все сообщения от Botik21
 
Регистрация: 01.06.2016
Сообщений: 87

Почему не правильно?
Как вариант:
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;');

Последний раз редактировалось Botik21, 01.06.2016 в 12:06.
Ответить с цитированием
  #9 (permalink)  
Старый 01.06.2016, 11:56
Аспирант
Отправить личное сообщение для Alex_63 Посмотреть профиль Найти все сообщения от Alex_63
 
Регистрация: 22.08.2015
Сообщений: 71

diga,
$("#message").append("<p>" + message.replace(/&/gm,'&amp;').replace(/</gm,'&lt;').replace(/>/gm,'&gt;') + "</p>");
Ответить с цитированием
  #10 (permalink)  
Старый 01.06.2016, 12:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из одного textarea в другой… Chile Events/DOM/Window 1 10.02.2016 09:16
Вопрос по textarea stivins Элементы интерфейса 3 05.11.2015 16:59
Проверка textarea на заполнение из файла espltd Элементы интерфейса 10 30.06.2015 15:48
обновить textarea wp2 Events/DOM/Window 6 03.02.2012 23:44
Resize textarea, в копилку. Robox jQuery 0 17.01.2011 18:05