任何人都可以帮我把原型中的这个函数转换为jQuery中的等价函数
function updateNewsletter(){
if ($('newsletter_dump')){
$('newsletter_dump').remove();
}
newsletterParam = $('newsletter_form').serialize(true);
newsletterParam.template_output = 'box/plugin_newsletter';
new Ajax.Updater('newsletter_form_holder', 'index.php', {
parameters: newsletterParam,
evalScripts: true
});
}
谢谢你的到来。
我试过这段代码但没有用。我不断收到对象错误
function updateNewsletter(){
if ($('#newsletter_dump')){
$('#newsletter_dump').remove();
}
newsletterParam = $('#newsletter_form').serialize(true);
newsletterParam.template_output = 'box/plugin_newsletter';
$.ajax({
type: 'GET',
url: 'index.php',
data: {"newsletterParam" : "newsletter_form_holder"},
dataType: 'script',
success: function(data){
alert(data);
},
error: function(e){
alert(e);
}
});
}
问题可能来自newsletterParam.template_output = 'box/plugin_newsletter';
关于如何在jQuery中为序列化元素添加另一个表单元素的任何想法?
感谢
答案 0 :(得分:1)
与Prototype的序列化函数不同,jQuery的serialize函数只返回一个字符串。您的错误是由于您使用newsletterParam
作为对象而不是字符串。因此,要解决此问题,只需将template_output
参数附加为字符串:
newsletterParam = $('newsletter_form').serialize();
newsletterParam += '&template_output=box/plugin_newsletter';
此外,ajax调用中的数据设置应为
data: newsletterParam,