【问题标题】:I can't serialize form from the object我无法从对象序列化表单
【发布时间】:2013-02-19 07:02:24
【问题描述】:

我在我的页面中使用scroll-pagination 作为插件,并且我使用表单将值传递给 url 我正在获取结果。

加载后新表单将动态添加到我的页面,我想序列化新表单以重复新页面的进度问题是,我的代码保持序列化第一个表单而不是新表单。

这是我的 Jquery

$(function(){
var datastring=$(".passform").last().serialize();
$('#update').scrollPagination({
    'contentPage': 'post_update.php', 
    'contentData': {
        data : datastring
        },
    'scrollTarget': $(window), 
    'heightOffset': 10, 
    'beforeLoad': function(){ 
        $('#loading').fadeIn(); 
    },
    'afterLoad': function(elementsLoaded){ 
         $('#loading').fadeOut();
         var i = 0;
         $(elementsLoaded).fadeInWithDelay();
                 datastring=$(".passform",elementsLoaded).serialize();  //Here's the Problem:S
    }
});

$.fn.fadeInWithDelay = function(){
    var delay = 0;
    return this.each(function(){
        $(this).delay(delay).animate({opacity:1}, 200);
        delay += 100;
    });};});

这是我在主代码中的第一个表单

<form id="passform" class="passform" name="passform">
        <input name="totalpage" type="hidden" value="<? echo($totalpage);?>" />
        <input name="nowpage" type="hidden" value="0" />
        <input name="u_id" type="hidden" value="<? echo($u_id);?>" />
        </form>

这是动态添加的新表单

 <form class="passform" id="passform" name="passform">
        <input name="totalpage" type="hidden" value="<? echo($totalpage);?>" />
        <input name="nowpage" type="hidden" value="<? echo($nowpage);?>" />
        <input name="u_id" type="hidden" value="<? echo($u_id);?>" />
        </form>

【问题讨论】:

    标签: jquery html object serialization


    【解决方案1】:

    更改第一个数据字符串:

    var datastring=$(".passform").first().serialize();
    

    这个数据串在afterload:

    datastring=$(document).find(".passform").last().serialize();
    

    注意:

    对多个元素使用相同的 id 是无效的。当这种情况发生时then only first of its type will get selected.

    【讨论】:

    • 全部以相同的形式加载.passform 或者这是一个具有相同类名.passform的新形式?
    • 有一个具有相同类的新表单 .passform @Jai
    • 仍然无法正常工作:(不明白为什么我不能在后加载中重新定义数据字符串。这似乎是正确的方法。(顺便说一句,我更新问题可能会有所帮助) @Jai
    • $(document).find(".passform").last().serialize(); 请尝试一次。
    • 并请从forms 中删除id attr。
    猜你喜欢
    • 2017-04-27
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    相关资源
    最近更新 更多