我有一个基于数据库中的信息填充的 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());
});
编辑:我忘记添加 mailto: 以使操作像 href 属性中的 mailto 链接一样。
关于javascript - 使用多个地址填充电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221674/