我有javascript电子邮件验证的问题

amo*_*mol -2 javascript php email validation

我在javascript电子邮件验证方面遇到问题,我编写了类似的代码,

//emp.php

    <form action="<?php echo $editFormAction; ?>" method="post" name="form2" id="form2" >
<table>
<tr valign="baseline">
      <td nowrap="nowrap" align="right">Desired Email-ID:</td>
      <td><input type="text" name="emp_email" value="" size="32" onsubmit="checkMail()";/></td>
    </tr>
<tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><input type="submit" value="Insert record" onclick="checkMail();"/></td>
    </tr>
  </table>
</form>
Run Code Online (Sandbox Code Playgroud)

// checkMail()的java scrit代码

<script language="javascript">

function checkMail() {
  var email=document.getElementById('emp_email').value;
var mail = email.value;

        var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]­{1}[a-z0-9]+)*[\.]{1}(com|ca|net|org|fr|us|qc.ca|gouv.qc.ca)$', 'i');



        if(!reg.test(mail) || mail == "")

        {

          alert("Your email address isn't valid!");

          return false;

        }

        else {

            alert("Email address is okay, let's send the form!");    

        }

      }

      </script>
Run Code Online (Sandbox Code Playgroud)

Plz提前帮助我

rah*_*hul 5

问题是没有带id的元素

emp_email.

您的元素名称为emp_email.在文本框中添加id属性.

<input type="text" name="emp_email" value="" size="32" onsubmit="checkMail()";/>
Run Code Online (Sandbox Code Playgroud)

改为

<input type="text" name="emp_email" id="emp_email" value="" size="32" onsubmit="checkMail()";/>
Run Code Online (Sandbox Code Playgroud)

编辑:将javascript验证放在提交按钮更改上

<input type="submit" value="Insert record" onclick="checkMail();"/>
Run Code Online (Sandbox Code Playgroud)

<input type="submit" value="Insert record" onClick="return checkMail();" />
Run Code Online (Sandbox Code Playgroud)

并从电子邮件文本框中删除onsubmit事件.