Javascript 电子邮件地址验证但创建帐户,尽管电子邮件地址无效
我编写了验证电子邮件地址的脚本,如果发送了无效的电子邮件,它会发出警报通知。虽然该帐户是使用相同的无效电子邮件地址创建的,并存储在数据库中…请提供帮助 代码似乎是:Javascript 电子邮件地址验证但创建帐户,尽管电子邮件地址无效,javascript,Javascript,我编写了验证电子邮件地址的脚本,如果发送了无效的电子邮件,它会发出警报通知。虽然该帐户是使用相同的无效电子邮件地址创建的,并存储在数据库中…请提供帮助 代码似乎是: <div class="form"> <ul class="tab-group"> <li class="tab "><a href="#signup">Sign Up</a></li> </ul> <
<div class="form">
<ul class="tab-group">
<li class="tab "><a href="#signup">Sign Up</a></li>
</ul>
<div class="tab-content">
<form name="form1" action="trynow" method="post" onsubmit="ValidateEmail(document.form1.txtEmail)">
<div>
<input type="hidden" name="register_csrf" autocomplete="false" autofocus="false" value="<%=((String)request.getAttribute("register_csrf")!=null)?request.getAttribute("register_csrf"):"" %>"/>
<% String error_msg = (String)request.getAttribute("error_msg");
if(error_msg != null)
{
%>
<div class="alert alert-error"> <%= error_msg %></div>
<% } %>
<%= ((String)request.getAttribute("succ_msg") != null)?request.getAttribute("succ_msg"):"" %>
</div>
<div class="field-wrap">
<label>
Full Name<span class="req">*</span>
</label>
<input required="required" name="txtName" type="text" >
</div>
<div class="field-wrap">
<label>
Email Address<span class="req">*</span>
</label>
<input required="required" name="txtEmail" type="text" >
</div>
<div class="field-wrap">
<label>
Set A Password<span class="req">*</span>
</label>
<input name="txtPassword" type="password" >
</div>
<div class="field-wrap">
<label>
Retype Password<span class="req">*</span>
</label>
<input name="txtRePassword" type="password" >
</div>
<div>
<button type="submit" class="button button-block" />Get Started</button>
</div>
<a class="small-message" href="login"><small>Already Registered ?</small></a><a href="/"> <small> <br>Back To Home</small></a>
</form>
<script>
function ValidateEmail(inputText)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{
document.form1.txtEmail.focus();
return true;
}
else
{
alert("You have entered an invalid email address!");
document.form1.text1.focus();
return false;
}
}
</script>
</div><!-- tab-content -->
</div> <!-- /form -->
全名*
电子邮件地址*
设置密码*
重新输入密码*
开始
函数ValidateEmail(inputText)
{
var mailformat=/^\w+([\.-]?\w+*@\w+([\.-]?\w+*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{
document.form1.txtEmail.focus();
返回true;
}
其他的
{
警报(“您输入的电子邮件地址无效!”);
document.form1.text1.focus();
返回false;
}
}
在提交表单中,使用
返回ValidateEmail(this.txtEmail)
现在,只有当电子邮件
有效时,才会发生表单提交。否则将被阻止
另外,您引用的是
document.form1.text1.focus();
,而text1
在表单中根本不存在。因此,您一定也在这里遇到了错误。您有几个问题,包括电子邮件错误时没有聚焦正确的字段,以及在邮件没有错误时聚焦某些内容。
我也会使用测试而不是匹配
我建议改为(在页首):
功能验证邮件(inputText){
var val=inputText.value;
var mailformat=/^\w+([\.-]?\w+*@\w+([\.-]?\w+*(\.\w{2,3})+$/;
如果(!mailformat.test(val)){
警报(“您输入的电子邮件地址无效!”);
inputText.focus();
返回false;
}
}
window.onload=function(){
document.getElementsByName(“form1”)[0]。onsubmit=function(){
返回ValidateEmail(this.txtEmail);
}
}
-
全名*
电子邮件地址*
设置密码*
重新输入密码*
开始
而不是text1写txtmail
<script>
function ValidateEmail(inputText)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{
document.form1.txtEmail.focus();
return true;
}
else
{
alert("You have entered an invalid email address!");
document.form1.txtEmail.focus();
return false;
}
}
</script>
函数ValidateEmail(inputText)
{
var mailformat=/^\w+([\.-]?\w+*@\w+([\.-]?\w+*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{
document.form1.txtEmail.focus();
返回true;
}
其他的
{
警报(“您输入的电子邮件地址无效!”);
document.form1.txtEmail.focus();
返回false;
}
}
在正文中,我写道:var mailformat检查没有引用。在函数validateEmail中,OP使用的是inputText.value
,因此在本例中需要只传递元素而不是值。您可以参考if(inputText.value.match(邮件格式))
啊,你是对的。但是你仍然可以使用这个。txtEmailYa这是真的。我们可以用多种方式引用元素。但是我想OP对OPs的选择很有信心。因为两者都会引用相同的txtEmail,所以我留下了它:)实际上页面中有更多的错误。请参阅我的回答谢谢#mohamedrias获得你的准确答案…我想我会It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It’’It It’’It It’’It’’It It’’It;将返回所有span元素。希望现在我的答案值得投赞成票;)当然可以,但选择器仍然错误。输入不在span标记内。正如我前面提到的,*
不包含输入,但您使用了document.queryselectoral(.req>input”)
是的,我看到了。我已经删除了其他字段的测试,因为它可以在jQuery中轻松完成,但查找以前的兄弟姐妹是浪费时间的-需要更改html才能使我的循环有意义。我错过了手机上的跨度
<script>
function ValidateEmail(inputText)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{
document.form1.txtEmail.focus();
return true;
}
else
{
alert("You have entered an invalid email address!");
document.form1.txtEmail.focus();
return false;
}
}
</script>