我已经开始在 w3Schools 上学习 JavaScript。我尝试执行该网站中给出的示例之一。由于某种原因我无法让它发挥作用。希望这不是重复的问题。我没有收到警报消息。如果有任何错误,请告诉我,因为这是我学习过程的第一步。
编辑:我更正了代码。谢谢您的帮助。如前所述,我忘记关闭 if block 。希望人们不会进一步投反对票。
编辑后的代码:
JS
function validate() {
//A simple mail validation function. Checks only period and '@'.
var email = document.forms['loginForm']['email'].value;
var period = email.lastIndexOf('.');
var atPosition= email.indexOf('@');
if (period < 1 || period + 2 > email.length || atPosition!= email.lastIndexOf('@')) {
alert('Please enter a valid email address');
return false;
}
}
HTML
<form action='verify.do' id="loginForm" method='post' name='loginForm'
onsubmit='return validate()'>
E-Mail: <input autofocus="" name='email' type='text'><br>
<input type='submit' value='Submit'>
</form>
最佳答案
您忘记了此处的结束符)
:
if (period < 1 || period + 2 > email.length || period != email.lastIndexOf('@') {
相反,它应该是:
if (period < 1 || period + 2 > email.length || period != email.lastIndexOf('@')) {
此外,您可能应该添加服务器端验证,因为这很容易被绕过。
此外,顺便说一句,您的警报中的字母 s
过多:
alert('请输入有效的电子邮件地址');
=> alert('请输入有效的电子邮件地址');
关于JavaScript 电子邮件验证表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21537690/