2016-03-31 14 views
0

E-postaları doğrulamak için bir işlev oluşturmak için HTML5'in type="email" onayını kullanmak istiyorum."Gizli Form" Kullanarak E-postayı Doğrulayın

Mümkünse, yapmak istediğim form oluşturmak ve type="email" numaralı bir girdiyi eklemeyi denemek istiyorum. E-posta iletilenin aslında bir e-postanın olup olmadığını iade edip etmediğini görebilirim.

Böyle bir şey, ama bu çalışmıyor biliyorum:

function isEmail (string) { 
    var frm = document.createElement('form'); 
    var input = document.createElement('input'); 

    input.setAttribute('type', 'email'); 
    input.setAttribute('action', 'javascript:void(0)'); 
    input.setAttribute('value', string); 

    frm.appendChild(input); 

    // I know this doesn't work 
    if (!! frm.submit()) return true; 
    else return false; 
} 

bu şekilde bir e-posta adresini doğrulamak mümkün mü? https://www.w3.org/TR/html5/forms.html#e-mail-state-(type=email) gibi

+0

Genel sorumluluk reddi bildirimi: Bir e-posta adresinin sözdizimsel geçerliliği, e-posta adresinin gerçekten var olduğu anlamına gelmez. Öyleyse, bu konuyla uğraşmaya çalışmayın. Yapmanız gereken tek şey, kullanıcıdan gelen yazım hatalarını yakalamaktır. Gerçek doğrulama, bir bağlantıya veya şifreye sahip bir e-posta ister. –

+0

Elbette, sadece geçen e-postanın sözdizimsel olarak doğru olduğundan emin olmaya çalışıyorum. – Martin

+1

"Sözdizimsel doğruluk" noktasında, gönderdiğim ikinci bağlantının altındaki Not'a bakın: _ "Bu gereksinim, aynı anda çok katı olan e-posta adresleri için bir sözdizimi tanımlayan RFC 5322'nin kasıtlı bir ihlalidir. "@" karakteri), çok belirsiz ("@" karakterinden sonra), ve çok lax (çok sayıda kullanıcının bilmediği davranışlarda yorum, boşluk karakterleri ve alıntılanmış dizeler) burada kullanılabilir. "_ - so_definitions_ "geçerli" bir e-posta adresini neyin oluşturduğuna, kimin sorduğuna bağlı olarak farklıdır. Gerekenden daha sıkı kontrol edilmesi genellikle tavsiye edilir. – CBroe

cevap

1

Kullanıcı ajanları kullanıcı yüzden muhtemelen oldukça itimat olmaz geçerli bir e-posta adresi

olmayan bir dizeye değer ayarlamak için izin verebilir diyor Bu konuda.

Plus, https://www.w3.org/TR/html5/forms.html#valid-e-mail-address, bir e-posta girdisi alanı doğrulanırken tarayıcı tarafından yapılması gerektiğinden, aynı denetimi gerçekleştiren (JS uyumlu) düzenli bir ifadeye sahiptir.


Ama, bunun için bir form alanını kullanmakta ısrar etmelidir - HTML5 ayrıca, form alanları geçerli olup olmadığını kontrol https://www.w3.org/TR/html5/forms.html#the-constraint-validation-api görmek için bir API sağlar - böylece aslında formu göndermek için gerek yoktur.

Giriş türü = e-posta için tarayıcı uyumluluğunu kontrol etmedim - ancak normal ifadeyle, her tarayıcıda çalışması gereken bir şeye sahip olacaksınız, ancak HTML5'e güveniyorsanız, henüz yakalanmayan bazılarında başarısız olabilir. .

+0

Bu cevabı beğeniyorum ve bu regex'i ürünümde kullanacağım. Yine de cesurca sorduğum soruyu merak ediyorum: Yapmaya çalıştığım şey * mümkün *, tavsiye edilmemeli de olsa? – Martin

+0

Düzenlememe bakın - HTML5 ayrıca, geçerlilik için form alanlarını kontrol etmek için bir API belirtir. – CBroe

+0

Evet, sadece gördüm. Birkaç dakika beklediğimden, doğru olarak işaretleyebilirim – Martin

İlgili konular