нужна помощь в jquery unformjs выберите меню '&' кодировка символов - PullRequest
5 голосов
/ 11 января 2012

Я использую контролы формыiformjs, которые работают, кроме списка. Когда я добавляю символ «&» (&) в меню списка, он отображается правильно, но проблема возникает, когда я изменяю значение на другое значение и снова выбираю значение с символом &, которое отображается как & вместо символа & в меню списка. enter image description here

enter image description here

<select>
<option>Through &amp; Google</option>
<option>Through Twitter</option>
<option>Other&hellip;</option>         
<option>&lt;Hi&gt;</option>
</select>

http://uniformjs.com/#example

Может кто-нибудь сказать мне, в чем проблема ..

Ответы [ 3 ]

4 голосов
/ 29 февраля 2012

По словам Дидлера, почему бы немного не изменить формуjs?

Я недавно встречался с тем же сценарием, и спасибо Дидлеру за то, что он указал точную линию, которая экономит мне кучу времени, чтобы найти место.

В моем случае выбор со значением состоит из специальных символов, таких как:

<option>aaa</option>
<option><a>bbb<br>ddd<hr>ccc</option>

, поэтому я могу изменить код в строке 185 на:

spanTag.text(elem.find(":selected").text());

, которая решает проблему, заключающуюся в том, что при отображении значения оно имеет правильную форму.

В сценарии op я не уверен, какой язык на стороне сервера вы используете, но определенно есть способ избежатьтекст внутри параметра перед созданием html-страницы, чтобы в вашем html не было &amp;, а сам символ.Я использую Java, чтобы я мог просто использовать JSTL <c:out value="${******}"/>, чтобы поместить значение в тег option.

4 голосов
/ 13 июля 2012

Есть запрос на получение ( 130 ), который обновляет 4 строки кода (строки 173, 185, 212 и 569), так что вместо .html() они используют .text().Два более поздних запроса на получение, которые я видел, не обновляют все 4 строки.

Если вы также хотите обновить минимизированную версию, вы можете выполнить поиск этих двух фрагментов:

  • l.html(n.html() (x1 - изменить второй экземпляр «html»)
  • :selected").html( (x3 - изменить только экземпляр «html»)
3 голосов
/ 11 января 2012

Я думаю, что проблема может исходить из этой строки ( source - строка 185):

spanTag.text(elem.find(":selected").html());

Если у вас есть следующий html:

<select>
    <option>One &amp; Two</option>
    <option>One & Two</option>
</select>
  1. Плагин получает содержимое в виде html , выполняя elem.find(":selected").html()

    Оба элемента option возвращают это значение при получении html: One &amp; Two Специальные символы представляются сущностями html(&amp; для & в нашем примере)

  2. , а затем плагин применяет этот результат как text , используя spanTag.text(<html>);

    Так что HTMLобъекты не анализируются (&amp; отображается как &amp;)

Это скрипка иллюстрирует это.

Я не думаю,Существует решение для этого, за исключением того, чтобы не использовать специальные символы, такие как & ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...