Javascript电子邮件验证码问题(仍在提交表单)

时间:2014-01-22 08:59:52

标签: javascript html forms

我已经在表单中添加了一些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();' />

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

4 个答案:

答案 0 :(得分:2)

只需在函数调用之前添加return:

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

答案 1 :(得分: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;
    }
}

答案 2 :(得分: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();' />

按预期工作。

答案 3 :(得分:0)

没有什么大问题,功能正常但是没有返回, 只需在调用函数之前添加return, 这是以下示例:

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

这会解决你的问题, 享受:)