Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我想使用JQuery克隆两个输入字段_Javascript_Jquery_Validation - Fatal编程技术网

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

Javascript 我想使用JQuery克隆两个输入字段,javascript,jquery,validation,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 oldind

我正在尝试创建一个表单,用户可能希望在其中动态添加两个输入字段,该表单链接到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>

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

多谢各位


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

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

通常,在jquery验证期间,
class='required'
应用于表单提交期间验证的元素。 如果您要克隆的元素确实定义了
class='required'
,那么您只需在克隆后将其删除即可

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

举个例子:

如果有更多信息,回答您的问题可能会更容易。例如,在页面的HTML中(通过firebug之类可以处理动态HTML的东西查看),新输入字段的确切ID是多少?如果您的问题是新字段也是必需的,那么这应该可以为您解决。我将您的问题解释为“此字段被标记为无效,即使其内容有效”。您的建议实际上帮助我摆脱了验证状态。克隆后,我必须删除两个类“state error”和“state success”。newnote.find('.input.text.required').removeClass('state-error');newnote.find('.input.text.required').removeClass('state-success');newnote.find('.input.input file').removeClass('state-error');newnote.find('.input.input file').removeClass('state-success');