我想使用JQuery克隆两个输入字段

时间:2015-12-17 17:36:35

标签: javascript jquery validation

我正在尝试创建一个表单,用户可能希望动态添加两个输入字段,并且此表单链接到validate JQuery插件。

$('.addnote').on("click",function(){
    countnotes++;
    var newnote = $(".notes:first").clone();
    newnote.find('input:file').val("");
    newnote.find('input:text').val("");
    var oldindexinput = countnotes-2;
    var newindexinput = countnotes-1;
    var attachement = newnote.find('#Justificatif'+oldindexinput+'Attachment');

    attachement.attr('id','Justificatif'+newindexinput+'Attachment');
    attachement.attr('name','data[Justificatif]['+newindexinput+'][attachment]');
    var motif = newnote.find('#Justificatif'+oldindexinput+'Motif');

    motif.attr('id','Justificatif'+newindexinput+'Motif');
    motif.attr('name','data[Justificatif]['+newindexinput+'][motif]');
    newnote.find('input:text[readonly]');
    var firstnoteid = $(".notes:first").attr('id');
    newnote.attr('id','notes'+countnotes);
    newnote.attr('style','');
    newnote.insertBefore('#'+firstnoteid).hide();
    newnote.slideDown();

});

这是Html代码

<input name="data[Justificatif][0][attachment]" type="text" readonly placeholder="Feuille de support"  required>

<input name="data[Justificatif][0][motif]" placeholder="Motif de dépenses" class="input-medium" maxlength="255" type="text" id="Justificatif0Motif" required>

我的代码的问题是它克隆了验证状态以及新的输入字段,我想摆脱它。

谢谢

snapshot of the input fields cloned

2 个答案:

答案 0 :(得分:2)

通常,在jquery验证期间,class='required'将应用于在表单提交期间进行验证的元素。 鉴于,您克隆的元素确实已定义class='required',您可以在克隆后将其删除。

var newnote = $(".notes:first").clone();
newnote.removeClass('required');

以下是一个例子:http://jsfiddle.net/DinoMyte/TP768/268/

答案 1 :(得分:0)

一些想法在我头脑中(基于我正在引用的类似项目):

  • 您能否确认新输入字段的ID绝对是唯一的。我看到你调用“newnote.attr('id','notes'+ countnotes);”,但你能确认html是否正确更改了?
  • 如果id是唯一的,请尝试取消附加并重新附加验证引擎。 (在我的代码中,我会删除所有内容并在每次更改时重新创建我的表单,然后重新调用jQuery($('form [name $ =“config_form”]'))。validationifyngine('attach');)