当验证不正确时,输入表单中的Javascript检查电子邮件地址只会在Safari中循环
Javascript check e-mail address in input form just loops in Safari when validation is not correct
我有一个表单,用户需要在一个输入框中输入他们的电子邮件地址。我有一个javascript函数,它存储在一个外部文件中,该文件正在html文件的头部加载。
当我输入无效的电子邮件地址时,Safari(6.0.5)出现问题。"警报"窗口弹出,当我单击"确定"时,它会一次又一次地弹出。我从来没有机会输入正确的电子邮件地址。
这就是我的功能:
function validateEmail()
{
var x=document.forms["theForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Not a valid e-mail address");
document.theForm.email.focus();
return false;
}
}
我调用这个函数如下所示:
<input type="text" name="email" onblur="validateEmail();" /></td >
如果使用.removeFocus()
,就不再有问题了。
function validateEmail()
{
var x=document.forms["theForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
document.getElementById('alert_mail').innerHTML = "Please change here";
return false;
}
document.getElementById('alert_mail').innerHTML = "";
}
编辑:这个函数中的return false;
没有任何作用,我假设你发布的代码不是整个代码,无论如何,return false;
在你提交表格时很有用,如果验证没有通过,你不想停止提交。
你认为onblur的safari中可能有一个错误,你尝试过onchange吗?
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 根据部门用户的选择,接收来自多个电子邮件地址的Wordpress Contactform7查询
- 电子邮件地址验证但创建帐户,即使电子邮件地址无效
- 如何在实时网页中用mailto链接替换电子邮件地址
- Javascript中的电子邮件验证检查
- 匹配Javascript中的几种不同的电子邮件地址格式
- 使用 Javascript 进行电子邮件地址验证在 ASP.net 中不起作用
- 使用不带正则表达式的jscript验证电子邮件地址
- ng变化不会'除非我输入了有效的电子邮件地址,否则我不会因为输入电子邮件而被解雇
- 使用JavaScript或JQuery验证电子邮件地址
- 如何防止电子邮件地址的css自动连字符
- 如何在不按按钮的情况下检查重复的电子邮件地址
- 使用 jQuery 检查电子邮件地址数组
- 当验证不正确时,输入表单中的Javascript检查电子邮件地址只会在Safari中循环
- 检查电子邮件地址是否为免费电子邮件服务
- 检查电子邮件地址是否为“免费网络邮箱”;(hotmail,雅虎. .)
- 检查字符串是否包含电子邮件地址
- 如何获得所有的电子邮件地址为每个复选框,是用jQuery检查
- 检查电子邮件地址是否为系统唯一
- 在JS中使用正则表达式检查有效的电子邮件地址失败