2009-10-14 15 views
15

मैं jquery सत्यापन का उपयोग कर रहा हूं और मुझे एक ईमेल सत्यापित करने की आवश्यकता है।AJAX कॉल के साथ jquery सत्यापन

मैं

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

अब तक तो अच्छा इस्तेमाल करते हैं। समस्या यह है कि मुझे यह सत्यापित करने के लिए AJAX कॉल करने की आवश्यकता है कि क्या दिया गया ईमेल पहले से मौजूद है या नहीं। अगर डिस्प्ले संदेश मौजूद है "यह ईमेल पहले से बाहर निकलता है। कृपया अन्य चुनें"।

क्या कोई इसे लागू करने में मेरी सहायता कर सकता है।

उत्तर

16
remote: "/some/remote/path" 

वह पथ $ _GET में फ़ील्ड का मान पारित किया जाएगा। तो .. क्या वास्तव में अपने मामले में कहा जाता हो जाता होगा:

/some/remote/path?email=someemailuriencoded 

सर्वर साइड कोड वापसी केवल पाठ सही या गलत है।

फिर संबंधित संदेश को दूरस्थ नाम भी दिया गया।

remote: "The corresponding email already exists" 

मेरे कुछ इसी तरह के लिए कोड:

$("#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 
}); 

इसी सर्वर साइड php में कोड:

$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; 
पाठ्यक्रम है कि मेरे डेटाबेस अमूर्त सामान उपयोग कर रहा है के

, लेकिन आप इसे मिलता है।

+0

डैरन धन्यवाद एक इनपुट है । मैं इसे ड्राइव का परीक्षण करूंगा, मुझे लगता है कि यह –

+0

मैं केवल रिमोट के लिए संदेश कैसे जोड़ सकता हूं ... या मैं कैसे कर सकता हूं – jack

+0

आपने मुझे कुछ समय बचाया है। धन्यवाद – Sino

0

आपकी सर्वर भाषा क्या है? PHP या एएसपी?

यह jQuery हिस्सा है:

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

वह वैध का उपयोग कर रहा है, जिसमें AJAX बनाया गया है। –

+0

लेखक का अर्थ है कि jQuery सत्यापन प्लगइन का उपयोग: http://docs.jquery.com/Plugins/Validation। सिर्फ एक अजाक्स कॉल नहीं। – Kamarey

+0

आह ठीक है, उसे नहीं पता था – k0ni

7

खैर, यह मेरे लिए काम करता ...

$('[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; 
     } 
    }); 

टिप्पणी है कि मैं आईडी के साथ 'txtMail'

संबंधित मुद्दे