HTML表单中mailto属性无法预填充收件人信息问题求助
修复方案
以下是你的代码存在的问题及对应修复:
表单method错误
mailto协议仅支持get请求方式,原代码中method="post"会导致参数无法被邮件客户端解析,同时可能影响收件人地址的识别。将method改为get。重复的name属性
两个姓名输入框使用了相同的name="name: ",提交时后一个输入值会覆盖前一个,需分别设置不同的name,比如name="first_name"和name="last_name"。评论框缺少name属性
textarea没有设置name,提交后内容不会被带入邮件正文,添加name="comments"。主题预填设置(可选)
如果需要预填邮件主题,可以在mailto链接后拼接?subject=表单提交反馈,或者添加一个hidden输入框来传递主题参数。
修复后的完整代码:
<form action="mailto:tejascs289022@gmail.com?subject=表单提交反馈" method="get"> <div> <label for="text">Name</label> </div> <div> <input type="text" name="first_name" placeholder="First Name"> <input type="text" name="last_name" placeholder="Last Name"> </div> <div> <label for="email">Email</label> <input type="email" name="email" placeholder="example@gmail.com"> <div> <label for="floatingTextarea2">Comments</label> <textarea name="comments" placeholder="Leave a comment here" id="floatingTextarea2" style="height: 100px"></textarea> </div> <input type="submit" value="Send"> </div> </form>
说明:
- 改成
method="get"后,表单参数会以key=value的形式拼接到mailto链接后,邮件客户端会将这些参数解析为邮件正文的内容。 - 如果不想在action里写主题,也可以用hidden字段替代:
<input type="hidden" name="subject" value="表单提交反馈">,效果一致。
内容的提问来源于stack exchange,提问作者Trex
相关产品推荐
相关产品推荐

