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

时间:2018-08-25 12:21:25

标签: jquery append

输入名称(comment_)最多为20。这意味着,如果我单击20次“添加评论”并删除5条评论并再次添加5,则应为16,17,18,19,20 (不是21,22,23,24,25)。我该如何修复?

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

var FieldCount = 0;
var x = $("#i_comment").length;
$('#add_comment_box').click(function(e) {
  if (x <= 21) {
    FieldCount++;
    $('#i_comment').append('<div class="in-section-50"><input type="text" class="in-75 mb-20" name="comment_' + FieldCount + '" id="field_' + 0 + '" required/> <a href="#" class="removeclass">Remove comment</a></div>');
    x++;
    $('#add_comment').show();
    $('add_comment_box').html('Add new comment');
    if (x == 21) {
      $('#add_comment').hide()
    }
  }
  return !1
});
$('body').on('click', '.removeclass', function(e) {
  if (x > 1) {
    $(this).parent('div').remove();
    x--;
    $('#add_comment').show();
    $('add_comment_box').html('Add new comment')
  }
  return !1
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='add_comment_box' class='in-section-100'>
  <a id='add_comment' class='btn_add_c_a'>Add comment</a>
</div>
<div class='big-section d_b_i' id='i_comment'></div>

2 个答案:

答案 0 :(得分:1)

我建议的简单逻辑是,在添加注释处理程序中,只需添加名称为“ comment_” +($(“#i_comment> div”)。length +1)的输入即可。然后在删除处理程序中,遍历每个输入并将其计数从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));
    });
}

答案 1 :(得分:0)

根据以上建议,我认为这是您要寻找的:

.container {
  display: grid;
  height: 100%;
}
myX = WorksheetFunction.Index(.SeriesCollection(Arg1).XValues, Arg2)
myY = WorksheetFunction.Index(.SeriesCollection(Arg1).Values, Arg2)