jQuery无法处理克隆的输入字段

时间:2012-03-10 20:02:28

标签: php jquery serialization clone

我有一些代码可以直接在克隆'按钮'之前克隆输入字段,重命名字段的id和名称(如下所示): -

$(".clone").live('click', function () {
var doppleganger = $(this).prev(); // Neater referencing.
    $(doppleganger).clone().insertAfter(doppleganger);

$(this).prev().attr("id", "input" + increment).attr("name", "input" + increment);

    increment++;

return false;

});

。 使用jquery ajax事件即时加载表单(#adv_magic)数据并提交: -

$("#adv_magic").live('submit', function() {

$("#editor_button, #date_select, #search").hide();
$(".loader").show();

$.ajax({
    type: "POST",
    url: "./scripts/aquire_template.php",
    data: $("#adv_magic").serialize(),
    success: function(html){
        $("#right_container").empty();
        $(".loader").fadeOut(350);
            $("#right_container").html(html);
    }
});
return false;

});

但是,当表单发布到我的脚本时,我的克隆输入字段没有被处理。我已经看过一些关于将输入字段创建为数组的教程,但如果还有其他任何我可以做的话,我宁愿在这个阶段不要乱用它。

我也想知道是否按照我序列化表单的方式?遗憾的是,由于无法从网上获得该应用程序,我无法在此时发布完整代码或链接。对此的任何想法都会非常感激!我很难过!

更新星期六10点20分31秒格林威治标准时间> 我从控制台获得了以下报告> firebug中的帖子标签: -

input1  meeting
input2  select date
input3  enter text
input5  NUMBER MISSING
input6  enter text
input7  test
switch  1

Source
input1=meeting&input2=select+date&input3=enter+text&input6=enter+text&input7=test&input5=NUMBER+MISSING&switch=1

输入5/6/7是克隆元素,所以可能它们被传递给脚本?

更新星期六10点21分06:06 GMT> 在脚本处理字符串变量之前回显该字符串变量,不会显示克隆的输入字段。

1 个答案:

答案 0 :(得分:1)

这个对我有用。

<form id="myForm">
    <fieldset>
        <input type="text" id="input1" name="input1"/><input type="button" value="clone" class="clone"/>
    </fieldset>
    <input type="submit" value="submit" id="sbmt"/>
</form>


$(".clone").live("click", function(e) {
    var count = $("#myForm fieldset").length + 1;
    $(this).parent().clone().insertBefore("#sbmt").find("input[type=text]").attr({
        "id": "input" + count,
        "name": "input" + count
    }).val("");
});


$("#myForm").submit(

function(e) {
    e = e || window.event;
    e.preventDefault();

    $.ajax({
        type: "GET",
        url: "/",
        data: $("#myForm").serialize(),
        success:function(data){
        }
    });
    return false;

});

演示:http://jsfiddle.net/wFzx5/2/