У меня проблема с установкой узла cdata с помощью jquery. Получение cdata легко сделать с помощью функции .text (), но если я использую .text ('jquery> handy'), это не создаст узел cdata.
Это моя процедура:
Я получаю данные формы в XML для загрузки в форме
как то так:
<formdata>
<field id="title"><![CDATA[Some title]]></field>
<field id="description"><![CDATA[Some description]]></field>
</formdata>
Я использую узлы cdata, потому что поле может содержать все виды специальных символов.
Затем я загружаю данные в форму, получая содержимое узла с помощью .text ()
Если пользователь отправляет форму, я обновляю xml и преобразую ее в строку, чтобы опубликовать ее на сервере. Я знаю, что мог бы просто опубликовать поля, но у меня есть несколько веских причин, чтобы поместить их в документ XML. Все работает очень хорошо, но нет, если пользователь вводит какие-то специальные символы.
Вот как я устанавливаю значение узла (в этом примере «узел описания»)
domdoc.find('field[id="description"]').text($("#description").val());
Таким образом, узел был cdata, но функция .text () удаляет его. Я ало пробовал это:
domdoc.find('field[id="description"]').text('<![CDATA[' + $("#description").val() + ']]>');
Это также не работает, потому что .text () изменяется <на & gt; </p>
у кого-нибудь есть решение? Мое вдохновение ушло .....
Спасибо,
Simon