我已经使用.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()函数是否为字符串的转义?
答案 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