javascript - 如何在按钮单击时添加输入字段
问题描述
function add() {
var new_chq_no = parseInt($('#total_chq').val()) + 1;
var new_input = "<input type='text' id='new_" + new_chq_no + "'>";
$('#new_chq').html(new_input);
}
function remove() {
var last_chq_no = $('#total_chq').val();
if (last_chq_no > 1) {
$('#new_' + last_chq_no).append('');
$('#total_chq').val(last_chq_no - 1);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
<button onclick="add()">Add</button>
<button onclick="remove()">remove</button>
<div id="new_chq"></div>
<input type="hidden" value="1" id="total_chq">
它一次添加输入字段,第二次单击它不添加任何内容,并且删除按钮不起作用
解决方案
您必须在附加元素时使用.append()
而不是:.html()
$('#new_chq').append(new_input);
最好在 JS 代码中附加事件,例如:
$('.add').on('click', add);
$('.remove').on('click', remove);
注意 1:不要忘记增加计数器#total_chq
:
$('#total_chq').val(new_chq_no);
注意 2:.remove()
如果要删除元素,则必须使用。
$('.add').on('click', add);
$('.remove').on('click', remove);
function add() {
var new_chq_no = parseInt($('#total_chq').val()) + 1;
var new_input = "<input type='text' id='new_" + new_chq_no + "'>";
$('#new_chq').append(new_input);
$('#total_chq').val(new_chq_no);
}
function remove() {
var last_chq_no = $('#total_chq').val();
if (last_chq_no > 1) {
$('#new_' + last_chq_no).remove();
$('#total_chq').val(last_chq_no - 1);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
<button class="add">Add</button>
<button class="remove">remove</button>
<div id="new_chq"></div>
<input type="hidden" value="1" id="total_chq">
推荐阅读
- java - JSoup:难以提取单个元素
- typescript - Apollo 服务器中的打字稿语法
- mysql - 在 django 模型中存储时区假设?
- mongodb - mongodb:使用查找结果作为过滤的标准不适用于时间戳
- python - 如何在一条路线中调用多条路线?
- database - 创建新的BPMN proc时camunda数据库中存储了多少表数据
- powerbi - 新订单和重复订单的 Power Query 语句(自定义列)
- python - 如何获取特定目录中所有最后存在的子文件夹的路径?
- ios - 为什么我尝试在图像上绘图时没有显示第二张图像?
- bash - 使用 bash 将数字列表转换为表格中多个字段的范围