jQuery - 做.serialize()正确的逃脱?

时间:2011-02-13 16:55:24

标签: jquery

我已经使用.serialize()完成了一个函数。

这是功能:

$('form[name=contactForm]').submit(function(e){
    e.preventDefault();
    $.ajax({
        type: 'POST',
        cache: false,
        url: './ajax/header_ajax.php',
        data: 'id=header_contact_send&'+$(this).serialize(), 
        success: function(msg) {
            $("#boxContentId").html(msg);
        }
    });
}); 

如果我在输入框中输入一些值' 我看到他们正确处理,功能正常。怎么可能?它应该在'id=header_contact_send&'+$(this).serialize(),

上造成混淆

serialize()函数是否为字符串的转义?

1 个答案:

答案 0 :(得分:7)

基本上,序列化在this file中实现。它最终为每个值对调用一个在jQuery.param中定义的函数:

add = function( key, value ) {
// If value is a function, invoke it and return its value
value = jQuery.isFunction( value ) ? value() : value;
s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
};

所以通过调用本机javascript函数encodeURIComponent来完成转义。

我希望这会对你有所帮助,

Jerome Wagner