发送邮件不适用于复制的数据列表
Posted
技术标签:
【中文标题】发送邮件不适用于复制的数据列表【英文标题】:Send Mailto doesnt work for the copied datalist 【发布时间】:2021-11-10 07:30:55 【问题描述】:代码
<body>
<script>
function addInput()
var container = document.getElementById("container");
var element = document.createElement("input");
element.setAttribute("list", "browsers");
container.appendChild(element);
var container = document.getElementById("container");
var element = document.createElement("input");
element.setAttribute("list", "op");
container.appendChild(element);
</script>
<!-- List -->
<form action="mailto:test@gmail.com" method="post" enctype="text/plain">
<fieldset>
<legend>Info:</legend>
<label for="fname">first name:</label>
<input type="text" id="fname" name="fname"><br>
<label for="lname">last name:</label>
<input type="text" id="lname" name="lname"><br>
<label for="date">date:</label>
<input type="date" id="date" name="date"><br>
<input type="radio" id="hkp" name="send" value="HKP">
<label for="hkp">HKP</label><br>
<input type="radio" id="patienten" name="send" value="Pat">
<label for="patienten">Pat</label><br>
<div id="container">
<label for="browser">Product:</label>
<input list="browsers" name="Product" id="browser">
<datalist id="browsers">
<option value=" x">
<option value=" y">
<option value=" z">
<option value=" a">
<option value=" b">
<option value=" c">
</datalist>
<label for="op">OP:</label>
<input list="op" name="op" id="op"><br>
</div>
<input type="button" value="+ Product" onclick="addInput()">
</fieldset>
<input type="submit" value="Senden">
<input type="reset" value="Reset">
</form>
这是问题所在,一旦我填写了所有内容并单击按钮 + 产品,它确实会添加“浏览器”和“操作”的列表,但一旦我单击提交,它就不会显示在电子邮件中有办法解决吗?我还需要帮助在复制的列表前面添加文本我只复制列表而不是标签,至少我不知道如何。
【问题讨论】:
【参考方案1】:在这种情况下,使用标准提交按钮提交表单将不起作用。提交按钮不考虑页面加载后创建的表单字段。
您必须编写一个提交处理程序来序列化您的数据并动态创建一个 mailto 链接:
function formSubmit(e)
e.preventDefault();
const formData = new FormData(e.target);
var mail = document.createElement("a");
mail.href = "mailto:test@gmail.com";
mail.body = // get elements from formData;
mail.click();
const form = document.getElementById('form');
form.addEventListener('submit', formSubmit);
不要忘记在表单中添加id="form"
。
【讨论】:
它告诉我“Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')”你知道为什么吗? :( / 我使用 Visual Studio Code 是相关的要知道 你添加id="form"
了吗?
我确实改变了提交的东西“" 这应该是你的意思吧?
不,我的意思是<form id="form" ...>
。
哦,但还是一样。 :c以上是关于发送邮件不适用于复制的数据列表的主要内容,如果未能解决你的问题,请参考以下文章
text 一次性和临时电子邮件地址的域列表。用于过滤您的电子邮件列表以提高开放率(发送电子邮件t