我有一个动态形式由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);
}
);
}
答案 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
}
);
如果您需要追加(如果不仅仅是您要添加的元素),您有两种可能的解决方案:
检查"#divpiece"
内部是否已包含该元素,如if($(".piece").val() === data[i].codePiece) { // stop script }
如果你追加的div("<div class="checkbox">...</div>
)是unqiue,你可以用$("div.checkbox").remove()
删除整个div然后添加另一个