如何使用JQuery在单击时创建添加和删除输入

如何使用JQuery在单击时创建添加和删除输入,jquery,append,Jquery,Append,输入名称注释的最大值必须为20。这意味着如果我点击20次添加评论,删除5条评论,然后再添加5条,那么应该是16,17,18,19,20,而不是21,22,23,24,25。我怎样才能修复它 到目前为止,我已经尝试过: var FieldCount=0; var x=$i_comment.length; $“添加注释框”。单击函数E{ 如果x1{ $this.parent'div'。删除; x-; $‘添加注释’。显示; $'add_comment_box'.html'add new comme

输入名称注释的最大值必须为20。这意味着如果我点击20次添加评论,删除5条评论,然后再添加5条,那么应该是16,17,18,19,20,而不是21,22,23,24,25。我怎样才能修复它

到目前为止,我已经尝试过:

var FieldCount=0; var x=$i_comment.length; $“添加注释框”。单击函数E{ 如果x1{ $this.parent'div'。删除; x-; $‘添加注释’。显示; $'add_comment_box'.html'add new comment' } 返回!1 }; 添加注释
我建议的简单逻辑是,在addcomment处理程序中,只需添加名为comment+$i_comment>div.length+1的输入。然后在remove handler中检查每个输入,并将其计数从1重置为20

简单地说,这是一个想法

$('#add_comment_box').click(function(e) {
    if( $("#i_comment > div").length <= 20) {
      $('#i_comment').append('<div class="in-section-50 input-div"><input type="text" class="in-75 mb-20" name="comment_' + ($("#i_comment > div").length + 1) + '" required/> <a href="#" class="removeclass">Remove comment</a></div>');
    }
    return !1
});

$('body').on('click', '.removeclass', function(e) {
    if ($("#i_comment > div").length > 1) {
        $(this).parent('div').remove();
        updateCount();
    }
    return !1
});

function updateCount() {
    $("#i_comment > div").each(function(key, value) {
        $(this).find('input').attr('name', 'comment_'+ (key + 1));
    });
}

基于上述建议,我认为这就是您所寻找的:

$“添加注释框”。单击函数E{ console.loge; comLength=$i_comment.children.length+1; 如果comLength=21{ $“添加注释”。隐藏 } } 回来1. }; $'body'。单击时,'.removeclass',函数E{ 如果$i_comment.children.length>=1{ $this.parent'div'。删除; $‘添加注释’。显示; $'add_comment_box'.html'add new comment' } 返回!1 }; 添加注释
你的解决方案有什么问题?什么有效?什么不起作用?控制台中有错误吗?@Andreas请再次查看问题。FieldCount未初始化。var x=$i_comment.length;对于var x=1,这是一种复杂的方法;id必须是唯一的id=field_'+0+'。FieldCount的问题在控制台中可见:未捕获引用错误:未定义FieldCount只是在代码段中运行代码。解决该问题后,您的代码工作->投票结束,因为该问题是由无法再复制的问题或简单的印刷错误引起的。似乎您有时使用x,有时使用Fieldcount也是出于同样的目的。我认为如果你删除x而改用fieldcount的话,效果会很好。我不认为你需要20个输入字段,名称=注释_2@Andreas每次添加后,$i_comment.length+1将返回下一个值。因此,当您第一次单击时,您将得到2,下一次单击时,您将得到3。$i_comment.length+1将始终是2。我认为CodeThing意味着$i_comment.children.length+1