2014-01-22 64 views
1

我已在表单中添加了一些JavaScript来验证电子邮件。我不想要一个单独的按钮来验证,我想它是表单提交按钮的一部分。它目前工作,并出现一条消息,要求我输入一个有效的电子邮件地址。问题是,当我点击“确定”它仍然尝试提交表单(并失败),而不是返回到表单来更正电子邮件地址。Javascript电子邮件验证码问题(仍提交表单)

我的javascript:

<script language="javascript"> 

function checkEmail() { 

var email = document.getElementById('txtEmail'); 
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

if (!filter.test(email.value)) { 
alert('Please provide a valid email address'); 
email.focus; 
return false; 
} 
}</script> 

我的HTML:

<input type="text" name="email" id="txtEmail" /> 
<input type="SUBMIT" class="button" value="Submit Email" onclick='Javascript:checkEmail();' /> 

我无法弄清楚的问题是什么。任何帮助,将不胜感激。干杯

回答

2

在函数调用前只需添加回报:

<input type="SUBMIT" class="button" value="Submit Email" onclick='Javascript:return checkEmail();' /> 
+0

非常好,这工作,谢谢队友。虐待标记并在11分钟内添加回答。 – Samp

0

试试这个:

HTML:

<form name="whatever" action="action.asp" onsubmit="return validateForm()" method="post"> 
    <input type="text" name="email" id="txtEmail" /> 
    <input type="SUBMIT" class="button" value="Submit Email" /> 
</form> 

JS(伪)

function validateForm() 
{ 
    if (something) { 
     alert('validation failed'); 
     return false; 
    } 
} 
+0

它现在排序感谢无论如何答复。 – Samp

0

这里是您的代码的返工。

<script type="text/javascript"> 
    function checkEmail() { 
     var email = document.getElementById('txtEmail'); 
     var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

     if (!filter.test(email.value)) { 
      alert('Please provide a valid email address'); 
      email.focus; 
      return false; 
     } 
    } 
</script> 

<input type="text" name="email" id="txtEmail" /> 
<input type="SUBMIT" class="button" value="Submit Email" onclick='checkEmail();' /> 

按预期工作。

+0

它的分类。我把你记下来。欢迎回复。 – Samp

0

没有一个主要的问题,该功能工作正常,但它没有返回回来, 只需添加返回调用该函数之前, 这里是下面的例子:

<input type="SUBMIT" class="button" value="mail" onclick='Javascript:return checkEmail();' /> 

这将整理你的问题, 享受:)