代码之家  ›  专栏  ›  技术社区  ›  Yasin Ergul

序列化用于jQuery ajax数据字符串中的字符串值的函数

  •  3
  • Yasin Ergul  · 技术社区  · 16 年前

    如果某些文本包含&其余的 这条评论似乎不起作用 很好,因为它把其余的都算作

    序列化代码?jQuery的 sanitize()函数适用于窗体,但 我想要我能用的东西

    var id = $("some_id_value_holder_hidden_field").val();
    var comment = $("#sometextarea").val();
    
    var dataString = "id=" + id + "&comment=" + comment;
    
    $.ajax({
    
    type: "POST",
    url: "write_comment.php",
    data: dataString,
    dataType: "json",
    success: function(res) {
      // Success
    },
    error: function(xhr, textStatus, errorThrown) {
      // Error
    }
    });
    

    任何建议都将不胜感激

    2 回复  |  直到 16 年前
        1
  •  2
  •   user187291    16 年前

    有一个内置的 encodeUriComponent 这正是你想要的。除此之外,您还可以在“数据”字段中提供一个对象,在这种情况下,url编码将由jquery处理。在您的示例中:

     $.ajax({
         type: "POST",
         url: "write_comment.php",
         data: { id: id, comment: comment},
         etc...
    
        2
  •  3
  •   John Himmelman    16 年前

    因为您使用的是jquery,所以可以使用附带的表单插件来序列化数组。

    serializeArray()-返回所有表单元素的键/值数组(需要知道)

    $.ajax({
        url : 'write_comment.php',
        type : 'post',
        data : $('#form-element').serialize(),
        success : function(data)
        {
            alert('yay!');
        }
    });
    

    编辑:编辑以删除不正确的escape()零件。

    推荐文章