2009-10-14 24 views
15

JQuery doğrulamasını kullanıyorum ve bir e-postayı doğrulamam gerekiyor.ajax çağrısı ile jquery doğrulaması

Ben şimdiye kadar çok iyi

$("#myForm").validate({ 
     rules: 
      email: { 
       required: true, 
       email: true 
      } 
}) 

kullanın. Sorun şu ki, verilen e-posta adresinin mevcut olup olmadığını doğrulamak için bir ajax çağrısı yapmam gerekiyor. Varsa ekran mesajı "Bu e-posta zaten çıkar. Lütfen başka birini seçin". Birisi bunu uygulamama yardım edebilir mi?

cevap

16
remote: "/some/remote/path" 

Bu yol, alanın değerini $ _GET olarak iletecektir. böylece .. aslında durumunda denilen Nelerin olacaktır:

/some/remote/path?email=someemailuriencoded 

sunucu tarafında kod dönüşü sadece metin doğru veya yanlış var. Daha sonra ilgili mesaj aynı zamanda uzaktan kumandalı olarak adlandırılır. benzer bir şey

remote: "The corresponding email already exists" 

Kodum: php

$("#password_reset").validate({ 
    rules: { 
    email: { required: true, email: true, minlength: 6, remote: "/ajax/password/check_email" } 
    }, 
    messages: { 
    email: { required: "Please enter a valid email address", minlength: "Please enter a valid email address", email: "Please enter a valid email address", remote: "This email is not registered" } 
    }, 
    onkeyup: false, 
    onblur: true 
}); 

karşılık gelen sunucu tarafında kod:

$email_exists = $db->prows('SELECT user_id FROM users WHERE email = ? LIMIT 1', 's' , $_GET['email']); 
if ($email_exists) { echo 'true'; } else { echo 'false'; } 
exit; 
benim veritabanı soyutlama malzeme kullanıyor Tabii

ama bunu almak.

+0

Daren ederiz kimliğe sahip bir giriş var

$('[id$=txtEmail]').rules("add", { required: true, email: true, remote:function(){ var checkit={ type: "POST", url: WebServicePathComplete+"VerifyEmail", contentType: "application/json; charset=utf-8", dataType: "json", data: "{'email':'" +$('[id$=txtEmail]').val() + "'}" }; return checkit; } }); 

not işleri . Bunu test edeceğim, sanırım –

+0

bunu sadece uzaktakiler için nasıl mesaj ekleyebilirim ... ya da nasıl birşeyler yapabilirim? – jack

+0

Az önce bana zaman kazandırdı. Teşekkürler – Sino

0

Sunucu diliniz nedir? PHP mi, ASP mi?

Bu jQuery parçasıdır:

$.ajax({ 
    type: "POST", 
    url: "YourWebserviceOrWhatEver", 
    data: "{'Email':'[email protected]'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     if(msg.EmailExists){ 
     //Email exists 
     alert("This email already exists. Please select other"); 
     } 
     else { 
     //Email doesn't exist yet 
     doSomething(); 
     } 
    } 
}); 
+0

o ajax yerleşik olan validate kullanıyor. –

+0

Yazarın jQuery doğrulama eklentisinin bir kullanımı olduğunu düşünün: http://docs.jquery.com/Plugins/Validation. Sadece bir ajax çağrısı değil. – Kamarey

+0

Ah tamam, bilmiyordum – k0ni

7

Eh, bu ... benim için ben 'txtMail'

İlgili konular