JQuery встроенная цитата в атрибуте
У меня есть пользовательский атрибут, который заполняется из базы данных. Этот атрибут может содержать одинарную кавычку, например:
MYATT='Tony\'s Test'
На каком-то месте в моем коде я использую jquery для копирования этого атрибута в поле вроде этого,
$('#MY_DESC').val($(recdata).attr('MYATT'));
MY_DESC - это текстовое поле в диалоговом окне. Когда я отображаю диалоговое окно, все, что я вижу в поле
Тони\
Что мне нужно увидеть,
Тест Тони
Как я могу это исправить, чтобы я мог видеть всю строку?
4 ответа
Пытаться:
MYATT='Tony's Test'
Я не стал проверять это с помощью спецификации HTML, но запись в Википедии гласит:
The ability to "escape" characters in this way allows for the characters < and & (when written as < and &, respectively) to be interpreted as character data, rather than markup. For example, a literal < normally indicates the start of a tag, and & normally indicates the start of a character entity reference or numeric character reference; writing it as & or & or & allows & to be included in the content of elements or the values of attributes. The double-quote character ("), when used to quote an attribute value, must also be escaped as " or " or " when it appears within the attribute value itself. The single-quote character ('), when used to quote an attribute value, must also be escaped as ' or ' (should NOT be escaped as ' except in XHTML documents) when it appears within the attribute value itself. However, since document authors often overlook the need to escape these characters, browsers tend to be very forgiving, treating them as markup only when subsequent text appears to confirm that intent.
Если вы не будете использовать двойные кавычки, поместите в них свой пользовательский атрибут:) Если нет, я предлагаю экранировать значение.
Перед установкой значения вашего текстового поля вы можете попробовать запустить регулярное выражение для строки, чтобы удалить все обратные слеши из строки.
Если вы делаете это:
оповещения ($(recdata).attr('Майат'));
Вы увидите тот же результат "Тони", означающий, что браузер неправильно использует значение. Экранированное значение не работает в этом случае.
У вас есть средства для редактирования этих значений по мере их производства? Можете ли вы проанализировать их, чтобы включить escape-значения перед отображением?