【问题标题】:On form submit, mailto from javascript with form values在表单提交时,来自带有表单值的 javascript 的 mailto
【发布时间】:2011-10-16 11:26:58
【问题描述】:

我有一个表单,当表单被提交时 (input type="submit"),我想打开客户端默认的邮件浏览器,其中包含预先填充的电子邮件消息。

所以当用户点击提交时,需要发生两件事。打开电子邮件并提交表单。

另外,我如何使用表单中输入的值来预填充电子邮件?

我是 javascript-jquery 的新手,所以请,任何代码示例都会有很大帮助!

感谢您的帮助!

【问题讨论】:

  • 你想要...javascript 来处理这个?至少我更喜欢 PHP。
  • 问题是我不能使用服务器端电子邮件,因为其中一个要求是电子邮件必须从客户自己的电子邮件客户端发送,这样邮件才会出现在他的发件箱中。

标签: javascript jquery mailto


【解决方案1】:

在提交表单之前,您可以:

 window.location.href = 'mailto:nicola@mio.it';

这将打开预定义的邮件客户端,您还可以预先填写一些字段。查看 mailto sintax here 或发布更多信息,以便我们为您提供帮助;

这可以这样完成:

$('input[type=submit]').click(function(){
     window.location.href = "mailto:" + $('#email').val();
});

【讨论】:

  • 所以我正在看这样的东西:code@ 987654325@
  • 啊哈。再次感谢。刚刚看到你的新例子。该示例将在打开 mailto 后继续提交表单?
  • 是的,它当然会提交。如果您查看链接,您会发现您还可以预填充一些字段,例如消息正文
  • 是的。那是我自己想出来的:)非常感谢。你一直很有帮助。顺便提一句。我可以用 html 填充正文来设置正文的样式吗?
  • 不,我不认为(至少我尝试过这个window.location.href = 'mailto:astark1@unl.edu?body=<b>I am having trouble finding information on</b>';,但它没有用!:)
【解决方案2】:

当我需要使用本地电子邮件客户端通过 mailto 发送时,我使用了这样的代码,它可能会有所帮助:

<html>
<head>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<form id="myform" enctype="text/plain" action="test.php" method="post" >
	<input type="text" value="value1" id ="field1" name="field1">
	<input type="checkbox" value="valuel2" id ="field2" name="field2" checked>
	<input type="checkbox" value="value3" id ="field3" name="field3" >
	<textarea id="myText" name ="texty">
	    Lorem ipsum...
	</textarea>
	<button onclick="sendMail(); return false">Send</button>
</form>
<script>
function sendMail() {
	$myform = $('#myform');
	$myform.prop ('action','mailto:mymail@mydomain.es');
	$myform.submit();
}
</script>

</body>
</html>

【讨论】:

    【解决方案3】:

    您可以使用预填充表单

    $("textarea").val('Your message here! You\' have to strip \'');
    

    如果是默认邮箱,恐怕不行

    【讨论】:

    • 我不推荐 JS 在提交后邮寄表单值。
    • 他不想发邮件,他想打开我认为的默认邮件客户端
    • @NicolaPeluchetti:啊哈!所以这是不可能的:/
    • @Genesis,不,不可能。作为一种技术,它有点老了
    • @Genesis:我不会预先填写表格。我只想从表单中获取值。
    猜你喜欢
    • 1970-01-01
    • 2019-12-30
    • 2019-04-04
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多