JQuery автоматически завершает форматирование, помещая HTML в ответ «метка» - PullRequest
0 голосов
/ 18 июня 2011

Я использую автозаполнение JQuery и отправляю ответ с метками и значениями. Я пытаюсь получить ярлык для форматирования HTML. Код json_encode избегает форматирования HTML, через который я пытаюсь пройти.

Должен ли я сделать это по-другому? Как сделать так, чтобы json_encode не экранировал форматирование html (оно меняет "/" на "\ /")?

Пример кода:

$return[$i]['label'] = $row['text'];
$return[$i]['label'] = "<span style='font-weight:bold;'>" . $row['text'] . "</span> - " . row['name'];  

json_encode($return);

и когда я просто проверяю ответ URL-адреса вручную, я вижу, что он экранирует "" в "<\ / span>"

1 Ответ

4 голосов
/ 18 июня 2011

Я не уверен, какое автозаполнение вы используете.Если вы используете http://jqueryui.com/demos/autocomplete/, ваша проблема не в json, ярлык не поддерживает html по умолчанию

Метка всегда обрабатывается как текст, если вы хотите, чтобы метка рассматривалась какHTML вы можете использовать Скотт Гонсалес 'HTML расширение .Все демонстрации посвящены различным вариантам опции источника - найдите ту, которая соответствует вашему варианту использования, и посмотрите на код

. Вы можете сделать что-то подобное.Код выполняет автоматическое заполнение соответствующего текста желтым цветом.

function autoCompleteRender(ul, item) {
    var searchTerm = this.term;
    var itemLabel = item.label;
    itemLabel = itemLabel.replace(new RegExp("(" + searchTerm + ")", "gi"), '<strong class="itemhover">$1</strong>');
    return $("<li></li>").data("item.autocomplete", item).append("<a>" + itemLabel + "</a>").appendTo(ul);
}


$(yourselector).autocomplete({
        source: function(request, response) {
            //your source
        }
    }).data("autocomplete")._renderItem = autoCompleteRender;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...