如何在动态添加的可排序输入框中删除div并在添加的输入前面编制索引

时间:2015-11-04 18:31:25

标签: jquery html angularjs angular-ui-bootstrap

 $('#add').click(function() {
                  var x = $('<div class="ui-state-highlight"><input type="text" class="form-control" ng-model="input.field" placeholder="Name"/><input type="text" class="form-control" ng-model="input.value" placeholder="Email"/><a href="a"><span class="glyphicon glyphicon-move"></span></a><input type="button" class="form-control" class="Minus" value="-" />' + ($('.con div').length + 1) + '</div>');
                  x.appendTo('#form .con') // the length is not working here if I use it in the front of the div while declairng the variable.
                });

                $('.Minus').on('click', '#rem .Minus', function () {
                    $(this).closest(".fruit").remove();
                    });
         
                    $("span").sortable({
                    connectWith: ".con"
                }).disableSelection();
<!DOCTYPE html>
<html>

<head>
  <script data-require="jquery@*" data-semver="2.1.4" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
  <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" />
  <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.js"></script>

</head>


<body>

 <div>
          
 <button id="add">add another option</button>
  <form id="form" class="form-inline">
    <span class="con">
        <div class="ui-state-highlight"><input type="text" class="form-control" ng-model="input.field" placeholder="Name"/>
                <input type="text" class="form-control" ng-model="input.value" placeholder="Email"/><a href="#">
          <span class="glyphicon glyphicon-move"></span><input type="button" class="form-control" class="Minus" value="delete" />
        </a>

</div>
       
    </span>
  </form>
   </div>
  </body>
  </html>
   
 

我正在尝试添加索引并删除单独添加的行。我尝试使用div的长度,但如果我将它附加到输入框的前面则不会触发。这是plunker http://plnkr.co/edit/4P6HWu9jVTmZhOnEhMdb?p=preview

1 个答案:

答案 0 :(得分:0)

你走了:

&#13;
&#13;
$('#add').click(function() {
  var x = $('<div class="ui-state-highlight">' + ($('.con div').length + 1) + '<input type="text" class="form-control" ng-model="input.field" placeholder="Name"/><input type="text" class="form-control" ng-model="input.value" placeholder="Email"/><a href="a"><span class="glyphicon glyphicon-move"></span></a><input type="button" class="form-control Minus" value="-" /></div>');
  x.appendTo('#form .con') // the length is not working here if I use it in the front of the div while declairng the variable.



});

$('.con').on('click', '.Minus', function() {
  $(this).parents(".ui-state-highlight").remove();
});

$("span").sortable({
  connectWith: ".con"
}).disableSelection();
&#13;
<!DOCTYPE html>
<html>

<head>
  <script data-require="jquery@*" data-semver="2.1.4" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
  <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" />
  <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.js"></script>

</head>


<body>

  <div>

    <button id="add">add another option</button>
    <form id="form" class="form-inline">
      <span class="con">
        <div class="ui-state-highlight"><input type="text" class="form-control" ng-model="input.field" placeholder="Name"/>
                <input type="text" class="form-control" ng-model="input.value" placeholder="Email"/><a href="#">
          <span class="glyphicon glyphicon-move"></span>
      <input type="button" class="form-control" class="Minus" value="delete" />
      </a>

  </div>

  </span>
  </form>
  </div>
</body>

</html>
&#13;
&#13;
&#13;

  1. 您有两个class声明,因此我合并它们以获得form-control Minus类。
  2. 还修复了.on()处理程序的选择器。
  3. 编辑: 您的新行标记由

    定义
    var x = $('<div class="ui-state-highlight"><input type="text" class="form-control" ng-model="input.field" placeholder="Name"/><input type="text" class="form-control" ng-model="input.value" placeholder="Email"/><a href="a"><span class="glyphicon glyphicon-move"></span></a><input type="button" class="form-control Minus" value="-" />' + ($('.con div').length + 1) + '</div>');
    

    要将索引移到前面,请将此($('.con div').length + 1)移到前面,如下所示:

    var x = $('<div class="ui-state-highlight">' + ($('.con div').length + 1) + '<input type="text" class="form-control" ng-model="input.field" placeholder="Name"/><input type="text" class="form-control" ng-model="input.value" placeholder="Email"/><a href="a"><span class="glyphicon glyphicon-move"></span></a><input type="button" class="form-control Minus" value="-" /></div>');