发送邮件不适用于复制的数据列表

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"了吗? 我确实改变了提交的东西“" 这应该是你的意思吧? 不,我的意思是&lt;form id="form" ...&gt; 哦,但还是一样。 :c

以上是关于发送邮件不适用于复制的数据列表的主要内容,如果未能解决你的问题,请参考以下文章

text 一次性和临时电子邮件地址的域列表。用于过滤您的电子邮件列表以提高开放率(发送电子邮件t

MIME::Lite 不适用于 SMTP

Autohotkey:复制粘贴

Sendmail 不适用于 crontab (bash)

Flask Mail 不适用于 Gmail 帐户和 AWS 实例

如何正确地从本地主机发送电子邮件 [关闭]