i javascript e-posta doğrulama sorun var

3 Cevap php

i have problem in javascript email validation, I wrote code something like,

/ / 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>

Checkmail için / / java scrit kodu ()

<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>

Plz bana teşekkür peşin yardımcı

3 Cevap

Gönder düğmesini kapalı ve e-posta alanın kendisi üzerinde bir onblur olayın üzerine javascript işlev çağrısı taşımayı deneyin.

Sorun kimliği ile hiçbir unsur olmasıdır

emp_email.

Sizin eleman isim emp_email vardır. Metin kutusuna bir id özniteliğini ekleyin.

<input type="text" name="emp_email" value="" size="32" onsubmit="checkMail()";/>

bunu değiştirin

<input type="text" name="emp_email" id="emp_email" value="" size="32" onsubmit="checkMail()";/>

Edit: To put javascript validation on submit button change

<input type="submit" value="Insert record" onclick="checkMail();"/>

karşı

<input type="submit" value="Insert record" onClick="return checkMail();" />

ve e-posta metin gelen onsubmit olayı kaldırabilirsiniz.

anka temel hata hakkına sahiptir. Ancak:

<td><input type="submit" value="Insert record" onclick="checkMail();"/></td>

Bir onclick göndermek üzerinde form doğrulama koymayın. Bu (formda alanlar ve düğmeler tarayıcı ve sayısına bağlı olarak) teslim butonuna tıklayarak olmadan formu göndermek mümkün olabilir. Her zaman formun kendisi üzerine koydu:

<form ... onsubmit="return checkMail();">

ayrıca:

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');

İşte en çok reklam-hoc "e-posta doğrulama" gibi, gerçekten kötü bir fikir birçok tamamen geçerli bir e-posta adreslerini reddeder Regexes. Adlarını ve TLD'ler izin verilir ne için kurallar, özellikle, amaçsızca, kısıtlayıcı vardır.

this infamous regex actually e-posta adreslerini doğrulamak için nasıl bakın. Sonra, ağlamaya vazgeçmek ve yerine sadece temel kontrolleri yapmak. (Bunun bir '@' a var? Var mı '.' Içinde? Olan hiçbir boşluk? Gayet iyi o zaman.)

(Hatta sayfa-uzun-korku-regex onu desteklemek için güzel olurdu, IDN üzerinden ASCII olmayan e-posta adresleri ile baş edemez.)