我想通过弹出窗口发送电子邮件,我只能使用html和javascript,因此php是不行的。
这是我到目前为止编写的代码:
<!DOCTYPE html>
<html>
<head>
<style>
h2 {
font-size: 20pt;
font-family: arial;
color: black;
background-color: blue;
letter-spacing: 2.5pt
}
fieldset {
border: 5px solid blue
}
legend {
padding: 0em 0.2em;
border: 1px solid blue;
color: green;
font-size: 30%;
text-align: center;
}
</style>
<title> ergasthrio 4 JavaScript</title>
<meta charset="utf-8">
</head>
<body>
<form name="myForm" id="form1" onsubmit="return validateForm()" method="post">
<fieldset>
<legend>
<h2>Communication Form</h2>
</legend>
Name*: <input type="text" name="fname" id="fname"><br> Last Name*:<input type="text" name="lname" id="lname"><br> Email*:
<input type="email" name="email" id="email"><br> Message*:
<br><textarea rows="6" cols="60" name="message" id="message" form="form1"> </textarea><br>
<input type="submit" id="submitbutton" value="ΑΠΟΣΤΟΛΗ">
<input type="reset" id="resetbutton" value="ΑΚΥΡΩΣΗ">
<p style="text-align: center;">ΤΑ ΣΤΟΙΧΕΙΑ ΜΕ * ΕΙΝΑΙ ΥΠΟΧΡΕΩΤΙΚΑ</P>
</fieldset>
</form>
<script>
function send() {
window.open('mailto:test@example.com?subject=subject&body=body');
}
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
var y = document.forms["myForm"]["lname"].value;
var z = document.forms["myForm"]["email"].value;
var e = document.forms["myForm"]["message"].value;
if (x == "" || y == "" || z == "" || e == "") {
alert("Fill in the blanks");
} else {
var confirmwindow = window.open("", "_black", "width=560,height=190");
confirmwindow.document.writeln("<h3>Σιγουρα θελετε να στειλετε την παρακατω φορμα?</h3>");
confirmwindow.document.write("<b>Name*: </b>" + x + "<br>");
confirmwindow.document.writeln("<b>Last Name*: </b>" + y + "<br>");
confirmwindow.document.writeln("<b>Email*: </b>" + z + "<br>");
confirmwindow.document.writeln("<b>Message*: </b><br>" + e + "<br><br>");
confirmwindow.document.write("<input type='submit' onclick='send()' id='submitbutton' value='ΑΠΟΣΤΟΛΗ'>" + " ");
confirmwindow.document.write("<input type='button' id='resetbutton' value='ΑΚΥΡΩΣH'>");
}
}
</script>
我的问题尤其在这一行confirmwindow.document.write("<input type='submit' onclick='send()' id='submitbutton' value='ΑΠΟΣΤΟΛΗ'>"+ " ");
因为弹出窗口的按钮似乎根本不起作用。
关于我做错了什么以及我能做些什么来修复它的想法?
答案 0 :(得分:0)
备注和想法。
从validateForm
返回false,以防止将通讯表单提交给服务器并刷新页面。
function validateForm() {
// existing code ...
return false;
}
或者,您可以将输入类型更改为&#34;按钮&#34;并添加一个onclick处理程序来调用validateForm
。
send
函数在打开窗口中定义,而不是弹出窗口。你可以替换
onclick="send()"
与
onclick="opener.send()"
在确认窗口中使用打开窗口作为上下文调用send
函数。注意使用&#34;提交&#34;确认窗口中的类型输入具有误导性,因为元素不在表单中并且不会提交任何内容。如果您愿意,可以使用按钮类型输入来反映元素的用法。
确认页面上的重置按钮没有任何单击处理程序可以执行任何操作。 (待完成)
&#34; mailto:&#34; URL仍取决于用户的浏览器设置和电子邮件客户端功能。它不适用于我安装的设置,我安装的(非常旧的)电子邮件客户端会抛出错误。有多少用户会遇到问题我不能回答,所以进一步的研究可能会有所帮助。
电子邮件地址&#34; mailto&#34;链接可以被收集并添加到垃圾邮件发送者传播的邮件列表中。像&#34;这样的搜索字词可以通过mailto邮件地址:收集垃圾邮件以获取垃圾邮件&#34;将提供进一步的信息和讨论。
结束</body>
和</html>
标记丢失(很容易修复)