动态形式由div中的javascript添加

时间:2017-06-21 12:28:02

标签: javascript

我有一个动态形式由div在其div中添加了j,但问题是当我调用此函数来填充我的div时,第一个调用工作正常但第二个它添加了已经存在的相同输入。然后在同一个div我有重复的输入

getAllPiece();

function getAllPiece(){
    $.getJSON(
         "getAllPiece", 
 {piece: $('select#typeevenement').val()},
 function(data) {
      var html = '';
      for(var i=0; i < data.length; i++){
          html += '<div class="checkbox"><label><input type="checkbox" class="piece" name="piece" value="'+data[i].codePiece+'" id="copiercin"/>' + data[i].libellePiece + '</label></div>';
          console.log(html);
       }
      $('#divpiece').append(html);
     }
  );
}

1 个答案:

答案 0 :(得分:1)

如果"#divpiece"元素中没有其他内容,您可以使用html()方法代替append(),因为它还会删除您要添加html的元素的内容。所以它看起来像:

...
function(data) {
  var html = '';
  for(var i=0; i < data.length; i++){
      html += '<div class="checkbox"><label><input type="checkbox" class="piece" name="piece" value="'+data[i].codePiece+'" id="copiercin"/>' + data[i].libellePiece + '</label></div>';
      console.log(html);
   }
  $("#divpiece").html(html); // HERE IS THE CHANGE
 }
);

如果您需要追加(如果不仅仅是您要添加的元素),您有两种可能的解决方案:

  1. 检查"#divpiece"内部是否已包含该元素,如if($(".piece").val() === data[i].codePiece) { // stop script }

  2. 如果你追加的div("<div class="checkbox">...</div>)是unqiue,你可以用$("div.checkbox").remove()删除整个div然后添加另一个