Обновить:
Похоже, проблема заключается в том, когда я читаю значение из html для начала.
Это разметка:
<input name="someval" type="text" value="Receive (+ open)" />
Я читаю значение someval
подобное этому, и someval
его вызову ajax:
$.ajax({ data: 'someval=' + $("input[name=someval]").val(), success: function(resp) { $("#targetd").html(resp); alert(resp); } });
Похоже, проблема возникает, когда она объединяет $("input[name=someval]").val()
в data: 'someval=' +
поскольку $("input[name=someval]").val()
имеет +
в этом.
старый
Я делаю вызов ajax для php-скрипта, и ответ возвращается с html-разметкой. Я беру этот ответ и назначаю его div после этого.
success: function(resp) { $("#targetd").html(resp); alert(resp); }
Предполагается, что часть возвращаемого ответа будет выглядеть так. (обратите внимание на знак +
)
<input name="someval" type="text" value="Receive (+ open)" />
Он работает нормально, и я могу назначить его div, за исключением того, что по какой-то причине возвращенная разметка не имеет знака +
<input name="someval" type="text" value="Receive ( open)" />
Когда сам скрипт php выводит разметку, он работает нормально, но когда разметка передается на страницу с помощью ответа ajax, символ +
исчезает. Я не делаю ничего особенного для разметки, поскольку приведенный выше код показывает, я просто беру его, как только он возвращается, и присваивает его div. Когда я предупреждаю ответ напрямую, +
также отсутствует, а не только когда он получает назначение в div. Не уверен, что здесь происходит.
Вы пробовали HTML-кодирование ответа? Я использую эти функции в своем javascript для кодирования / декодирования.
function HtmlEncode(value) { return $('<div/>').text(value).html(); } function HtmlDecode(value) { return $('<div/>').html(value).text(); }
Я рекомендую попытаться избежать вашего плюс + как & # 43; и посмотрите, решит ли это вашу проблему. Если это так, это проблема с проблемой сущности.