仅在电子邮件有效时提交表单

xRo*_*bot 3 javascript

我需要一种只有在电子邮件有效时才提交表单的方法.如果电子邮件无效,则仅显示警报(下面您可以看到我的代码).

JAVASCRIPT:

 function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
 } 


 function continueornot() {
    if(validateEmail(document.getElementById('emailfield').value)){
    // ok
    }else{ alert("email not valid"); return false;}
 }
Run Code Online (Sandbox Code Playgroud)

HTML:

<form method="post" action="register.php" enctype="multipart/form-data">
<table>
<tr><td>Email:</td></tr>
<tr><td><input type="text" size="30" name="email" id="emailfield"> </td></tr>
<tr><td>Password:</td></tr>
<tr><td><input type="password" size="30" name="password"> </td></tr>
</table>
<input name="steptwo" value="Create Account" type="submit" onclick="continueornot();"/>
</form>
Run Code Online (Sandbox Code Playgroud)

问题是即使电子邮件无效,表单也会提交.

我该如何解决这个问题?

Hac*_*ese 8

您应该附加return continueornot();onsubmit表单的事件,而不是按钮的单击事件.

看到这个小提琴:http://jsfiddle.net/NdSmu/