javascript - 连同请求参数一起提交表单
问题描述
我想使用 javascript 将我的表单提交到后端。但是,我还必须向表单 url/action 端点添加一个可变参数。想知道 javascript 的做法是什么?
这就是我现在拥有的
<form id="profile-message-form" action="/send-message?to" method="get">
<textarea name="message-content" id="message-content" maxlength="1000" contentEditable="true"></textarea>
<div id="send-button-container">
<button id="profile-message-submit" onclick="sendMessage('profile-message-form')" name="subject" type="submit"><i id="profile-message-send-icon" class="fas fa-paper-plane"></i><p>Send</p></button>
</div>
</form>
function sendMessage(form_id) {
var form = document.getElementById(form_id);
// find email address to send to
// submit form with email address as ":to" req param
form.submit();
}
解决方案
最简单的方法是在提交之前将隐藏字段添加到表单中。
const formEl = document.getElementById('form');
formEl.onsubmit = e => {
e.preventDefault();
const hiddenAgeEl = document.createElement('input');
hiddenAgeEl.type = 'hidden';
hiddenAgeEl.name = 'age';
hiddenAgeEl.value = 22;
formEl.append(hiddenAgeEl);
formEl.submit();
}
<form id="form" action="/send-message?to" method="get">
<input type="text" name="name">
<button type="submit">Submit</button>
</form>
推荐阅读
- python-2.7 - 人们如何知道哪个字节用于某些任务 - python 套接字
- c++ - 通过 std::vector 的迭代似乎只在一个函数中被破坏
- amazon-web-services - 为 docker swarm(集群)打开的端口
- reactjs - 如何在材质 UI 中通过根组件更改子元素的样式?
- postgresql - 使用日期时间查询防止大规模顺序扫描
- react-native - 手动升级 react native 版本后报错
- c# - 为什么我在 Powershell 和 C# 之间得到不同的结果
- matlab - 在 MatLab 中将汉宁窗应用于我的回波信号
- javascript - 根据页面加载时的下拉值显示文本框
- go - 从 protobuf 中的其他包导入类型定义