代码之家  ›  专栏  ›  技术社区  ›  stormdrain

prototype serialize返回函数而不是序列化字符串

  •  0
  • stormdrain  · 技术社区  · 15 年前

    我有剧本。在它里面是代码。

    我有一页。里面有一些db的东西。有一个编辑按钮。按下时,会弹出一个div,并通过ajaxrequest使用外部php文件填充表单字段。表单有一个名称,该名称为nameEdit。该表单上有一个按钮,用于调用js函数,即submit。在这个js函数中:

    function testAdd(func,cid,itemid){
    
        var nameFormData = $('nameEdit').serialize;
        var options = {
            method:'post',
            postBody:nameFormData,
            onCreate: function() {alert('created request'+nameFormData)},
            onSuccess: function(transport){var container_div = $('completeDiv$i');container_div.update('<b>HOKAY!</b>');},
            onComplete: function(transport){var container_div = $('updatingDiv$i');Effect.toggle('transDiv$i','appear', { delay: 1.0 });container_div.update('');},
            onFailure: function(){alert('Something went wrong...')}
        };
    
            new Ajax.Request('/clients/'+func+'/'+cid+'/'+itemid,options);
    
    };
    

    如果我在onCreate中放置了一个常规的“hai-guise”警报,它会发出应有的警报。但是,如果我添加了应该包含序列化数据的函数,它将返回以下内容:

    function () {
    return __method.apply(null, [this].concat($A(arguments)));
    

    }

    还有蛋糕:如果不是 $('editName').serialize; ,我有 $('clientNameFirst').value; (editName表单中的一个输入id),它将返回相关值。 哈尔普?

    1 回复  |  直到 13 年前
        1
  •  2
  •   Fabien Ménager    15 年前
    var nameFormData = $('nameEdit').serialize();
    

    必须添加括号才能执行函数,否则将得到函数本身。