шаблоны jquery.tmpl нарушают XHTML-валидацию

#jquery #jquery-templates

#jquery #jquery-шаблоны

Вопрос:

У меня есть документ со следующим типом документа:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru">
  

Шаблоны объявляются следующим образом:

  <script id="tmpl-periods-options" type="text/x-jquery-tmpl">   
        {{each plans_array}} 
            <label><input type="radio" value="${$value.id}" name="pf-periods" {{if $value.selected}}checked="checked" {{/if}} />${$value.title}</label>
        {{/each}}           
    </script>   
  

http://validator.w3.org / показывает мне ошибки в html-коде, который объявлен внутри <script> тега.

Есть ли какое-либо решение?

Ответ №1:

Обычные методы JavaScript не работают, поскольку это не JavaScript; простое перенос шаблона в //<![CDATA[ ... //]]> or //<!-- ... //--> только усугубляет проблемы.

Как было предложено в этом сообщении в блоге, кажется, что наилучшими вариантами являются либо использование HTML 5, либо помещение шаблона во внешний файл и включение этого.

 $(document).ready(function() {
    $.get('template.html', function(content) {
        $.template('template name', content);
    });
});
  

Комментарии:

1. Да, я пробовал CDATA в первую очередь, безуспешно — final ]]> стал частью шаблона (хотя его можно удалить).