如何将此Ajax函数(在原型中)转换为jquery函数?

时间:2015-06-08 16:51:05

标签: javascript jquery ajax prototypejs

任何人都可以帮我把原型中的这个函数转换为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中为序列化元素添加另一个表单元素的任何想法? 感谢

1 个答案:

答案 0 :(得分:1)

与Prototype的序列化函数不同,jQuery的serialize函数只返回一个字符串。您的错误是由于您使用newsletterParam作为对象而不是字符串。因此,要解决此问题,只需将template_output参数附加为字符串:

newsletterParam = $('newsletter_form').serialize();
newsletterParam += '&template_output=box/plugin_newsletter';

此外,ajax调用中的数据设置应为

data: newsletterParam,