让我说,我有一个用户名单,我想通过电子邮件。邮件:让我打开电子邮件,它插入他们的电子邮件地址。我希望这是动态的。
1@1.com
2@2.com
3@3.com
4@4.com
我点击用户1和4,发送和电子邮件出去。下一次,我点击2和3并发送另一封电子邮件出去。
问题:现在,每次我点击一个用户,它都会打开一个新窗口。我将发送单独的电子邮件给用户到1和4。我必须使用什么功能,这样它就不会打开一个新的电子邮件窗口,每次我点击电子邮件。如果我点击所有的用户1到4,我希望所有4个电子邮件地址在同一个窗口,所以我发送一封电子邮件给所有4个用户。不是相反的。
发布于 2014-07-17 14:16:29
您可以使用Javascript或Jquery来检测单击,防止默认操作,然后将它们编译到列表中。然后,必须使用第二个按钮来触发操作。
<a href='1@1.com' class='mailto'>User 1</a>
<a href='2@2.com' class='mailto'>User 2</a>
<a href='mailto:' id='combined' style='display: none;'></a>
<input type='button' value='Send' id='send'>
<script>
$('.mailto').click(function(e){
e.preventDefault();
$('#combined').attr('href',$('#combined').attr('href') + $(this).attr('href') + ';');
});
$('#send').click(function(e) {
$('#combined')[0].click();
});
</script>参见示例:http://jsfiddle.net/evVR8/2
您可能还希望有一个清除按钮,该按钮将返回#combined的href返回到“mailto:”。
编辑-更新的jsfiddle,以有一个明确的和显示列表的用户当前选择。
你也可以结合使用这个和@Brad的答案,这样他们就可以简单地使用复选框,这样就可以更容易地看到您发送给谁了。但是,不要使用window.location.replace,而是使用隐藏的链接并单击触发器。
发布于 2014-07-17 14:17:26
虽然通过没有规范的方式向多个收件人发送电子邮件协议存在mailto:,但是您可以引入一种使用复选框(或其他方式)来模仿它的格式。然而,如前所述,并不能保证它能起作用:
<label>
<input type="checkbox" name="to" value="1@1.com">1@1.com
</label>
<label>
<input type="checkbox" name="to" value="2@2.com">2@2.com
</label>
<label>
<input type="checkbox" name="to" value="3@3.com">3@3.com
</label>
<label>
<input type="checkbox" name="to" value="4@4.com">4@4.com
</label>
<input type="button" value="Send Email" id="send-email" />为了简单起见,在这里使用一些jQuery:
$('#send-email').on('click', function(e){
var to = [];
$('input[name="to"]:checked').each(function(){
to.push($(this).val());
});
window.location.replace('mailto:' + to.join(','));
e.preventDefault();
return false;
});以上例子
但是,最好在发电子邮件的后端使用PHP,因为它能够(并且将)优雅和一致地处理多个收件人。
发布于 2014-07-17 14:15:13
请查看此链接
当您知道如何添加多个收件人时,只需将字符串与地址连接或添加带有复选框的简单javascript即可。
https://stackoverflow.com/questions/24805921
复制相似问题