jQuery post()撇号如何将撇号自动转换为html数字实体?

时间:2012-04-16 14:48:07

标签: javascript jquery post html-entities

我使用JQuery.post()将一些数据发布到服务器,如下所示。当我在服务器端收到发布数据时,我很惊讶地看到post变量已经将单个撇号转换为html数字(即。'被替换为')。这是怎么回事?转换是否发生在Jquery.post()中?我找不到任何关于此的文件。

$("#save").click(function(event) {
    event.preventDefault();

    var postdata = "id="+id+"&note="+$("#note").val();

    $.post("save_note.php", postdata, function(data){
    $('#save_status').text(data);
    });
});

3 个答案:

答案 0 :(得分:0)

这根本不会发生。

可能的原因是,在您读取该值并将其放入postdata字符串之前,该值已经是HTML编码。

答案 1 :(得分:0)

你应该:

  • encodeURIComponent
  • jquery在表单上的方式(至少有一个)serialize()方法,如下所示:

    $("#save").click(function(event) {
      event.preventDefault();
    
      var $form = $(event.target).closest('form');
      //var postdata = "id="+id+"&note="+$("#note").val();
    
      $.post($form.attr('method'), $form.serialize(), function(data){
      $('#save_status').text(data);
      });
    });
    

我希望这会有所帮助。

答案 2 :(得分:0)

它发生在网络浏览器中。

检查$("#note").val()的值 - 当您在表单字段中键入某些内容时,请记住它已被插入到HTML DOM中。