jquery ajax响应删除+字符

时间:2009-11-05 20:05:09

标签: php javascript jquery ajax

更新

看起来问题是当我从html开始读取值时。

这是标记:

<input name="someval" type="text" value="Receive (+ open)" />

我正在读取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()中有+

我正在对php脚本进行ajax调用,并且返回的响应包含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时。不确定这里会发生什么。

2 个答案:

答案 0 :(得分:1)

我建议尝试逃避你的加号+&amp;#43;看看是否能解决你的问题。如果是这样,它就是一个实体逃逸问题。

答案 1 :(得分:1)

您是否尝试过HTML编码响应?我在我的javascript中使用这些函数来编码/解码。

function HtmlEncode(value)
{
    return $('<div/>').text(value).html();
}

function HtmlDecode(value)
{
    return $('<div/>').html(value).text();
}