Значение поля настройки JQuery + Java с помощью val () + одинарная кавычка

Возможный дубликат:
Как избежать апострофа или кавычек в JSP (используется javascript)

У меня проблема с установкой значения элемента textarea с помощью jquery val().

По сути, у меня есть файл JSP, который получает строковый параметр с именем «текст».

Java code:
String text = (String) request.getParameter("text");

Теперь я хочу, чтобы мой элемент textarea получил этот текст:

Javascript code:
$('#textarea_id').val('<%=text%>');

Это работает, когда мой текст не содержит одинарных кавычек (и, возможно, других символов).

Например, для текста =

test'

эта ошибка происходит:

Uncaught SyntaxError: Unexpected token ILLEGAL
$('#textarea_id').val('test'');

Надеюсь, вы понимаете. Мне нужен способ закодировать это значение... я пытался использовать escape, поэтому кавычка заменяется на% 27, но после отмены экранирования она снова заменяется, и возникает ошибка.

Спасибо!


person Fabio K    schedule 17.10.2012    source источник


Ответы (3)


Вы получаете сообщение об ошибке, потому что Javascript использует символ ', чтобы определить, где заканчивается ваша строка. Чтобы включить буквальную кавычку в вашу строку, экранируйте кавычку обратной косой чертой.

$('#textarea_id').val('test\'');
person Paul Alan Taylor    schedule 17.10.2012

Вам нужно избежать одинарной кавычки с кодом Java. Окончательный вывод должен выглядеть так

.val('test\'')
person epascarello    schedule 17.10.2012
comment
Итак, мне нужно экранировать строку Java, прежде чем устанавливать ее значение в текстовой области? Думаю понял... попробую спасибо! - person Fabio K; 17.10.2012

должен быть

$('#textarea_id').val('test \' ');
person MimiEAM    schedule 17.10.2012