javascript - 表单提交前 Javascript 未执行
问题描述
我目前有一个表格,有两个按钮,“添加”和“提交”。使用 javascript,每当单击“添加”时,我都会向表单添加更多行。但是,在我单击“提交”之前,它不会更新表单。如何在不点击“提交”按钮的情况下添加行?
<form method="post" id="formset">
<table>
{% csrf_token %}
{{ formset.management_form }}
{{ formset }}
<div id="empty_form">
<tr>
{% for field in formset.empty_form.visible_fields %}
<td>{{ field }}</td>
{% endfor %}
</tr>
</div>
</table>
<button id="add_more" type="button">Add</button>
<button type="submit" id="submit">Submit</button>
</form>
Javascript:
$('#add_more').click(function() {
var form_idx = $('#id_form-TOTAL_FORMS').val();
$('#formset').append($('#empty_form').html().replace(/__prefix__/g, form_idx));
$('#id_form-TOTAL_FORMS').val(parseInt(form_idx) + 1);
});
解决方案
查看target.oninput = functionRef;
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/oninput
例子:
let input = document.querySelector('input');
let log = document.getElementById('log');
input.oninput = handleInput;
function handleInput(e) {
log.textContent = `The field's value is
${e.target.value.length} character(s) long.`;
}
<input type="text" placeholder="Type something here to see its length." size="50">
<p id="log"></p>
推荐阅读
- dynamic - Power BI 动态滚动 12 个月测量
- graphql - 在 vertx GraphQL 中处理订阅
- multithreading - Spring Boot Rest-Controller 限制多线程
- java - 使实体遵循操纵角度的路径
- marklogic - 我们如何在单个 XQuery 代码中获取所有 MarkLogic 数据库文档计数?
- typescript - 在 TypeScript 中推断依赖参数类型
- kotlin - 使用 kotlin 动态重命名房间表中的列
- php - Laravel API 资源仅在“收集”方法上返回关系
- javascript - 页面加载后功能未运行
- python - 使用 2d 均值向量的随机正态数