jquery使用bind添加和删除输入

时间:2014-01-07 17:00:22

标签: jquery

我想只添加两行。我有以下代码的2个问题。

  1. 不断添加两行。
  2. 当我尝试删除时,它不会删除所选记录。
  3. http://jsfiddle.net/5WwTB/14/这是DEMO

    $('#addProfile').bind('click', function() {
    
                if($('#container').find('#removeProfile').length < 2) {
    
                    var len = $('#container').find('#removeProfile').length;
                    //alert(len);
                    var index = len+1;
    
                    $('#container').append('<div>&nbsp;</div><div class ="form-group-inline"><label class="col-sm-2 control-label" >Profile Number</label><div class="col-sm-3"><input  class="text-input form-control" type="text" name="profileNumber" id="profileNumber" /></div><label class="col-sm-2 control-label" >Amount</label><div class="col-sm-3"><input  class="text-input form-control" type="text" name="amount" id="amount" /></div><div class="col-sm-2"><button type="button" id="removeProfile" class="btn btn-success">RemoveProfile</button></div></div>');
    
    
                }else{
    
                    bootbox.alert("You cannot add more than two profiles!", function() {});
    
                }
            })
     });
    
      $('body').on('click', '#removeProfile', function() {
    if($('#container').find('#removeProfile').length > 0) {            
        $(this).parent().remove();
    
     }
    })
    

    我可以在我的工作区中添加记录,但相同的代码不适用于小提琴。我希望有人可以帮助我首先让它在小提琴中工作,然后看看我有的问题。谢谢!

1 个答案:

答案 0 :(得分:0)

执行$('#container').find('#removeProfile').length时,您将始终获得0或1,而不是更多 无论如何,您不能两次使用相同的ID。删除ID或使其唯一。 (http://msdn.microsoft.com/en-us/library/ie/ms534704(v=vs.85).aspx)。

相反,您可以使用.form-group-inline来检查您拥有的数量。 所以:

if($('#container .form-group-inline').length < 2) { .... }

对于删除部分,您将向具有选择器name=removeProfile的元素添加单击处理程序。你没有。相反:

$('body').on('click', '.form-group-inline .btn-success', function() { 
    if($('#container .form-group-inline').length > 0) {            
        $(this).parents('.form-group-inline').remove();
    }
}

这应该有效。