[英]How to prevent form fields ending up in the message body when using HTML mailto?
我正在使用mailto:
并且想知道为什么我用来收集要放入电子邮件客户端字段中的数据的表单也最终落入消息主体中,如下所示:
hello // test body
msg_address=hello@some.com
msg_comment=hello
msg_cc_message=on
我的表单action
属性设置如下:
var form = $(this).closest('form'),
first = "info",
last = "some.com"
mailto = "mailto:"+first+"@"+last+"?",
subject = "subject=Website enquiry&",
message = "body="+$('#msg_comment').val(),
bcc = $('#msg_cc').is(':checked') ? "bcc=" + form.find('#msg_address').val() + "&" : "";
form.attr("action",mailto+bcc+subject+message).submit()
我希望邮件正文仅包含message
设置的内容,而不包含整个表单内容(包括表单字段名称)。
问题 :
有什么方法可以防止表单域显示在邮件正文中?
编辑:
这是我的表格:
<form action="" method="post" enctype="text/plain" name="mailer">
<label for="msg_address" data-i18n="contact.label_email" class="t">Email:</label>
<input data-role="text" type="text" id="msg_address" name="msg_address" value="" maxlength="100" />
<label for="msg_comment" data-i18n="contact.label_message" class="t">Your Message:</label>
<textarea rows="10" cols="20" id="msg_comment" name="msg_comment"></textarea><br />
<input type="checkbox" name="msg_cc" id="msg_cc" class="t" data-i18n-target="" data-i18n="" />
<label for="msg_cc" data-i18n="contact.label_cc" data-i18n-target=".ui-btn-text" class="t">CC to Email address provided</label>
<div data-role="controlgroup" data-type="horizontal" class="mailer_menu">
<input type="reset" value="Reset" data-i18n="contact.delete" data-i18n-target="" class="t" />
<input type="button" id="mail_trigger" value="Send" data-i18n="contact.send" class="t" data-iconpos="right" data-i18n-target="" data-theme="b" data-icon="arrow-r" />
</div>
</form>
提交表单时,根据定义,它将把类似输入的元素(输入,文本区域等)发送到指定的目标。
现在,在javascript中,您可以更改action属性以创建格式更精美的电子邮件模板,但是表单中仍然包含所有输入,因此根据定义它们将被添加到正文中。
为防止这种情况,您可以将隐藏表单放入html中,其中不包含类似输入的元素,甚至可以将其作为自封闭元素,然后修改操作并提交该表单。 甚至可以即时创建一个。
这样,您将不需要的电子邮件中没有任何内容。 请注意取消第一个表单的提交。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.