php - 删除从 php 获取的元素,并与从 jquery 动态创建的输入结合
问题描述
我正在尝试通过单击按钮动态添加输入。有一个删除输入按钮以及动态创建的输入元素。这将删除输入元素。我已经实现了这一点,并进一步将输入值插入到 mysql db 中。我对此没有任何问题。
现在,当我从我的数据库(while 循环)中获取现有值时,现有输入值与相同的删除按钮一起创建。单击删除按钮不会删除元素,但是当我单击插入输入然后删除时,它可以工作。
我没有找到解决这个问题的方法。如果有人可以请帮忙。下面是我的代码。
我的 HTML
<span id="insertblank">
<button type="button" class="btn" id="custom-button">Insert Input</button>
</span>
<div class="col-md-12 form-group fillin-answer">
<!-- My PHP WHILE loop would actually be here, but for illustration, I have manually inserted the elements as below -->
<!-- BEGIN INSERTED ELEMENTS -->
<div class="blanksanswers" id="removeans1">
<label class="removeans1">
Input <span>1</span><span class="text-danger">*</span>
<button type="button" class="btn btn-sm btn-danger remove" data-id="1">
Remove 1 Input
</button>
</label>
<div class="input-group removeans1">
<input class="form-control" id="fillin_answer1" name="fillin_answer[]" value="some values"/>
</div>
</div>
<!--END INSERTED ELEMENTS-->
</div>
查询
var count = 0;
var customButton = document.querySelector('#custom-button');
customButton.addEventListener('click', function(event) {
count++;
var new_input = '<div class="blanksanswers" id="removeans'+count+'"><label class="removeans'+count+'" style="color:#333D79FF; font-size:15px;">Input <span>'+count+'</span><span class="text-danger">*</span><button type="button" class="btn btn-sm btn-danger remove" data-id="'+count+'">Remove '+count+' Input</button></label><div class="input-group removeans'+count+'"><input class="form-control" id="fillin_answer'+count+'" name="fillin_answer[]" /></div></div>';
$('.fillin-answer').append(new_input);
$('.removeans'+count).on("click",".remove", function(e){
e.preventDefault();
var id = this.getAttribute("data-id");
$("#removeans"+id).remove();
if($(".blanksanswers").length == 0) {
count=0;
questc=0;
}
})
//}
});
我的代码笔在这里。
感谢任何帮助。
解决方案
您删除按钮不起作用,因为您正在添加EventListener
,custom-button
所以它只有在您点击后才会起作用custom-button
。
您可以尝试使用以下代码class
代替id
元素。
$(document).ready(function(){
$('body').on('click','#custom-button',function(){
var new_input = '<div class="blanksanswers" ><label class="removeans" style="color:#333D79FF; font-size:15px;">Input <span></span><span class="text-danger">*</span><button type="button" class="btn btn-sm btn-danger remove">Remove Input</button></label><div class="input-group removeans"><input class="form-control" id="fillin_answer" name="fillin_answer[]" /></div></div>';
$('.fillin-answer').append(new_input);
});
$('body').on('click','.remove',function(){
$(this).closest('.blanksanswers').remove();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span id="insertblank">
<button type="button" class="btn" id="custom-button">Insert Input</button>
</span>
<div class="col-md-12 form-group fillin-answer">
<!-- My PHP WHILE loop would actually be here, but for illustration, I have manually inserted the elements as below -->
<!-- BEGIN INSERTED ELEMENTS -->
<div class="blanksanswers" id="removeans1">
<label class="removeans1">
Input <span>1</span><span class="text-danger">*</span>
<button type="button" class="btn btn-sm btn-danger remove" data-id="1">
Remove 1 Input
</button>
</label>
<div class="input-group removeans1">
<input class="form-control" id="fillin_answer1" name="fillin_answer[]" value="some values"/>
</div>
</div>
<!--END INSERTED ELEMENTS-->
</div>
推荐阅读
- c# - 无法在下拉列表中选择要选择的 SelectList 项
- git - 以前的 git bisect “会话”的状态是否存储在 git 的某个地方?
- python - Python Cerberus - 如果另一个不存在则需要一个
- latex - 如何将命令 zhnumber 替换为在 Latex 中添加英文数字的等效命令
- ethernet - 2 台设备如何通过以太网交换机进行通信
- javascript - 元素/值的每个更改列表上的 JavaScript 计数器为零(从零开始)
- flutter - 在颤动的输入字段上键入时如何更改文本字段
- ios - 如何将与现实世界对象的碰撞应用到 RealityKit 中的 3D 对象 (.usdz)?
- laravel - Laravel:电子邮件未从服务器发送
- java - Java PriorityQueue Comparator 在特定条件下插入二维数组