有一个代码可以动态生成表单字段和一个<select>
用于选择捆绑问题的字段。但是,如果我从列表中间删除一个字段,比如说字段1-2-3和删除2 ,那么字段1-3仍然存在,问题是我需要移动下面的所有字段,使其变为1-2删除后也改变了字段的编号select
(这是因为你不能只改变数字,然后select
会显示一个额外的问题)。我不能只删除3而不是2 ,如果第 3 个块中有一些信息,并且第2 个块被删除,那么来自3的信息就会消失。
function addField() {
var text = "";
var telnum = parseInt($('#add_field_area').find('div.add:last').attr('id').slice(3)) + 1;
for (i = 1; i < telnum; i++) {
text += '<option>Вопрос ' + i + '</option>';
}
$('div#add_field_area').append('<div id="add' + telnum + '" class="add"><label> Поле №' + telnum + ' </label><textarea name="val[]"></textarea><select class="chzn-select' + telnum + '" name="require[]">' + text + '</select><span class="deletebutton" onclick="deleteField(' + telnum + ');"> удалить</span></div>');
}
function deleteField(id) {
$("div#add" + id).remove();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="add_field_area">
<div id="add1" class="add">
<label> Поле №1</label>
<textarea name="val[]"></textarea>
</div>
</div>
<input type="button" value="Добавить поле" onClick="addField();">
UPD。带有嵌套块的代码:
<div id="add_field_area">
<div id="block1" class="block">
<div class="number">1.</div>
<div class="wrapAreas">
<div class="wrapTextarea">
<textarea></textarea>
</div>
<div class="wrapSelect">
</div>
</div>
</div>
</div>
看,我删除了删除功能,添加了重新绘制表单的 rePain 功能。优点: