javascript - 使用多个地址填充电子邮件

标签 javascript html forms email

我有一个基于数据库中的信息填充的 HTML 表,并且希望在表的底部有一个按钮,单击该按钮时,会打开一个电子邮件客户端(又一个 HTML mailto:),并具有收件人:字段中的多个地址基于表中的某些单元格。

我有该按钮的 HTML。

<input type="button" id="emailAll" value="Email All">

我开始编写这段小代码,以在单击按钮时收集电子邮件地址:

$("emailAll").click(function($){
  var emailCell = 4;
  var length = document.getElementById("orgTable").rows.length;
  var emailArray = [];
  for (i = 0; i < length; i++) {
   emailArray.push(document.getElementById("orgTable").rows[i].cells[emailCell].value);
  }
});

但是,我不太确定接下来该去哪里。 我读过,在 mailto: 中包含多个电子邮件地址是错误的(?),所以我不确定我应该从这里去哪里?另外,我什至不确定我当前拥有的代码是否有效(例如,我很确定“emailAll”部分是错误的?),因此任何更正将不胜感激! =]

另外,如果之前有人问过这个问题,我们深表歉意。

谢谢!

编辑 所以这里有更多细节,因为不幸的是我现在的答案不起作用。

这正在 WordPress 网站上使用,并且需要从帖子内部调用代码。当我尝试使用我拥有的代码时,一堆 HTML 标签被添加到源代码中,例如 </p>等等。这让我相信即使在 WordPress 编辑器的非可视模式下,格式仍然会被应用。我该如何解决这个问题?

还要考虑到我无法将脚本放入 HTML 中。

编辑2

好的,这是该表的代码。我在 Formidable Pro(Wordpress 表单插件)中使用它,因此 [number] 对应于一个字段。

<div class = "fullWidth">
    <table id = "orgTbl">
    <thead id = "orgheader">
        <tr>
            <th class="orgheadercell" colspan = "5">[get-team]</th> 
        </tr>
        <tr>
            <th> ... </th> 
            <th> ... </th> 
            <th> ... </th> 
            <th> ... </th> 
            <th> Email Address </th> 
        </tr>
    </thead>
    <tbody id="orgbody">
        <tr class = "orgbodyrow">
           <td class="orgbodycell">[249]</td>
           <td class="orgbodycell">[250]</td>
           <td class="orgbodycell">[322]</td>
           <td class="orgbodycell">[336]</td>
           <td class="orgbodycell">[264]</td>
        </tr>
    </tbody>
        <tr>
        <td class="orgheadercell" colspan = "5">
            <form id="getEmails" action="" method="GET">
                <input type="submit" id = "emailAll" value="Email All" />
            </form>
            <script src = "/wp-includes/js/create-email.js" type="text/javascript">
            </script>
        </td> 
        </tr>
     </table>
</div>

所以,您看到的是一个正在进行的工作,在准备好之前仍然需要对其进行一些清理。但无论如何,正如我所说,[number] 字段被替换为其中保存的实际值,以及 <tbody> 之间的内容。和</tbody>我的数据库中的每个条目都会重复。

此外,我意识到我的脚本列出了“orgTable”,但我将其更改为正确的“orgTbl”。另外,正如我所想的value会给我单元格中的值,它显然是用于下拉菜单的,我将其更改为 innerHTML 。但仍然没有运气。

最佳答案

将按钮放入这样的表单中:

 <form action="" method="GET">
        <input type="submit" value="Email All" />
    </form>

对于 javascript,onload,请输入:

$("emailAll").click(function($){
  var emailCell = 4;
  var length = document.getElementById("orgTable").rows.length;
  var emailArray = [];
  for (i = 0; i < length; i++) {
   emailArray.push(document.getElementById("orgTable").rows[i].cells[emailCell].value);
  }

  // once you got your array of email properly from your table, try this
   $('form').get(0).setAttribute('action', "mailto:"+emailArray.toString()); 

});

编辑:我忘记添加 ma​​ilto: 以使操作像 href 属性中的 mailto 链接一样。

关于javascript - 使用多个地址填充电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221674/

相关文章:

ruby-on-rails - 如何在选择输入中进行收集取决于另一个选择输入的值

javascript - 询问用户是否确定,然后禁用按钮并提交表单

html - 提交按钮中的字符可以采用不同的格式吗?

javascript - 检查 window.closed 是否重定向到另一个 URL/主机

HTML - 响应式地将视频置于背景

javascript - 我怎样才能以更精简的方式完成这个 jQuery 代码?

javascript - 如何从 jquery 或 javascript 获取 HTML 的值

javascript - Angular 4 div hidden vs ngIf render Agm Google Map API

javascript - 如果 Accordion 面板有 anchor 链接,如何打开它?

javascript - 计算表中的行数,如果大于 0,则显示表